原因
报错信息:
> Task :video_player:compileDebugJavaWithJavac FAILED
C:\Users\Android\.gradle\caches\transforms-2\files-2.1\fb1ca74aa4c8fc7e94695009d2ccaab0\jetified-exoplayer-common-2.12.1-api.jar(com/google/android/exoplayer2/util/Util.
class): 警告: 无法找到类型 'EnsuresNonNull' 的注释方法 'value()': 找不到org.checkerframework.checker.nullness.qual.EnsuresNonNull的类文件
C:\Users\Android\.gradle\caches\transforms-2\files-2.1\fb1ca74aa4c8fc7e94695009d2ccaab0\jetified-exoplayer-common-2.12.1-api.jar(com/google/android/exoplayer2/util/Util.
class): 警告: 无法找到类型 'EnsuresNonNull' 的注释方法 'value()'
错误: 发现警告, 但指定了 -Werror
1 个错误
2 个警告
问题是这样的,这段时间在搞 Flutter
,集成到原生项目中编译正常,但是一打包就失败,Flutter
模块单独打包也没问题,问题定位到是 Flutter
模块中引用了一个 video_player
的第三方包,这个包中的代码有用到 @EnsuresNonNull
的注解,网上找了好多资料,各种办法都试过了,什么修改Kotlin
版本、Gradle
版本、升级Gradle
插件、Gradle JDK
版本、AndroidStudio
版本都换了问题依旧,在无计可施的情况下我觉得是我的 java
环境有问题,随后验证了我的猜想。
解决
解决起来就简单了,之前用到的java
环境安装的是 jdk-8u40
这个版本,随后更换到 jdk-8u301
这个版本,重新编译打包,问题解决。
3 comments
是的,我也是后来才知道
这个是androidstudio gradle jvm 出幺蛾子,之前一直是jdk8,现在设置成jdk11 。就可以了。
Setting->Build,Excution,Deployment->BuildTools->Gradle->gradle jdk(选11)