Gradle命令编译失败NoClassDefFoundError和VerifyError
问题
不知道大家在编译gradle项目的时候习惯直接在Android Studio这种IDE里面还是命令行操作。
今天在Deepin系统里面用命令编译:
1 | ./gradlew assembleDebug |
直接报错:
Exception in thread “main” java.lang.NoClassDefFoundError: org.gradle.wrapper.BootstrapMainStarter
at java.lang.Class.initializeClass(libgcj.so.17)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: java.lang.VerifyError: verification failed at PC 96 in org.gradle.wrapper.BootstrapMainStarter:start(([Ljava.lang.String;Ljava.io.File;)V): incompatible type on stack
at java.lang.Class.initializeClass(libgcj.so.17)
…1 more
然后用Studio的Build Apk功能又没问题。顿时感觉奇怪。
去谷歌了一下这个错误,没找到什么实用的信息。
解决
冷静分析 -> 稍加思索 -> $^&*#@,想到了最开始安装Deepin的时候查到 java -version 还是 1.5 ,以我多年的踩雷经验,应该是Java版本太旧导致的。
顺手一个openjdk8给安排上:
1 | sudo apt-get install openjdk-8-jdk |
安装完成,解决了。再次使用gradle命令就不会出错了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Pig Cat!
评论