Cannot refer to a non-final variable ‘result’ inside an inner class defined in a different method
从内部类中访问变量’result’,需要声明为final

这个问题有两种解决方法:
1.添加final修饰符
2.为AS添加java1.8支持:
在Moudle: app的build.gradle中添加如下代码

android {    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }}

然后Gradle Sync即可。

java1.8中默认内部类中访问的局部变量是final,无需声明为final变量,但如果变量在内部类中修改,则依然会报错:

Local variable ‘result’ defined in an enclosing scope must be final or effectively final
变量’result’从内部类中访问,需要是final或有效的final

另:JDK8十大新特性

更多相关文章

  1. Android(安卓)Studio 3.0+添加ButterKnife依赖报错的解决办法
  2. android 关于使用retrofit2.0的一些问题
  3. Android(安卓)Studio配置AspectJ(使用jar包的方法)
  4. android studio 无线调试 及 adb环境变量配置
  5. GridView添加网格线
  6. android音乐播放器怎么搜索SD卡上的音乐文件
  7. Android上使用camera拍照,把获取的照片上传到远程服务器
  8. Android管理联系人(包含添加,查询,修改和删除;以及不同版本区别)
  9. 在NDK中使用STL

随机推荐

  1. android客户端与服务端交互的三种方式
  2. 不疯狂!非正常!
  3. [转]Android(安卓)SDK 中的 SDK Manager.
  4. 安卓表格布局android:collapseColumns,an
  5. Android应用程序启动过程源代码分析
  6. Android测试教程(2):测试基础
  7. Android: AIDL --- Android中的远程接口
  8. Android的进程,线程模型
  9. Phonegap软键盘遮挡输入框问题
  10. Android(安卓)Activity的4种启动模式详解