从命令行构建android应用程序时,我遇到错误任务':app:compileDebugJavaWithJavac'的执行失败。 java.lang.NoClassDefFoundError:javax / annotation / Generated
我在android应用程序中启用了dataBinding
符号:类DataBindingComponent 位置:类ActivityMainBinding /home/chetan/project/newGradle/app/build/generated/source/dataBinding/baseClasses/debug/com/sko/gradledemo/databinding/ActivityMainBinding.java:49:错误:找不到符号 @Nullable DataBindingComponent组件){
符号:类DataBindingComponent 位置:类ActivityMainBinding / home / chetan / project / newGradle / app / build /生成/source/dataBinding/baseClasses/debug/com/sko/gradledemo/databinding/ActivityMainBinding.java:60:错误:找不到符号 @Nullable DataBindingComponent组件){
符号:类DataBindingComponent 位置:类ActivityMainBinding 5个错误
失败:生成失败,发生异常。 什么地方出了错: 任务':app:compileDebugJavaWithJavac'的执行失败。 java.lang.NoClassDefFoundError:javax / annotation / Generated
答案 0 :(得分:2)
我在使用命令行./gradlew :app:assembleDevDebug
时在我的项目中得到了这个,但在Android Studio中运行我的项目时却没有。问题是注释处理重新查询(在您的情况下为dataBinding)失败,并且依赖关系已在较新的JDK中删除。
我的问题归结为使用openjdk version "13.0.1"
的“系统” JDK到Gradle。即使使用JDK 8将JAVA_HOME
设置为特定的值,Gradle仍在使用“系统”值。使用打印./gradlew -v
的{{1}}很容易发现。
我通过在项目根目录的gradle.properties文件中将JDK主页设置为与Android Studio捆绑在一起的JDK来解决了这个问题。
JVM: 13.0.1 (Oracle Corporation 13.0.1+9)
此后,该项目可以使用命令行正常运行。希望它能帮助别人。