今天打开项目发现出现了一个错误,刚开始Android Studio的版本是3.4.2一点问题都没有,后来就莫名奇妙的报错了,感觉很蒙蔽,编译时控制台的错误信息如下:
Gradle sync failed: Uninitialized object exists on backward branch 142
Exception Details:
Location:
com/android/build/gradle/internal/pipeline/VariantInfoImpl.<init>(Lcom/android/build/gradle/internal/scope/VariantScope;)V @200: goto
Reason:
Error exists in the bytecode
Bytecode:
具体信息截图如下:
上面这一段有用的信息很少,但是关键字bytecode表明和JDK有关,这里还在编译阶段,所以应该是引用的JDK的版本有问题,于是我查找了我的JAVA_HOME环境,升级了一下jdk,但是发现并没有什么用,回想起自己的项目以前在导包和打包成jar时有一个jdk的路径设置选项,Android Studio在以前是需要配置jdk和java_home的,但是现在的新版本Studio都内置有jdk环境路径是XX:\AndroidStudio\jre,而系统环境的路径是C:\Program Files (x86)\Java\jdk1.8.0_05。
产生原因:
IDE run起来的时候,引用了Android Stadio 3.5 内置的JDK,路径为XX:\AndroidStudio\jre
Gradle build的时候,引用了系统环境的JDK,即JAVA_HOME中定义的C:\Program Files (x86)\Java\jdk1.8.0_05
解决办法:
修改jdk路径为一个可用路径(AndroidStudio自带的jre路径):这里根据你自己电脑的Studio路径来配置
修改之后构建和编译都成功
版权声明:本文为CSDN博主「淡淡的香烟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012556114/article/details/101199855