从android java.lang.NoClassDefFoundError中的命令行获取错误:javax / annotation / Generated

问题描述 投票:1回答:1

虽然从命令行构建android应用时出现错误,但任务':app:compileDebugJavaWithJavac'的执行失败。java.lang.NoClassDefFoundError:javax / annotation / Generated

我在android应用程序中启用了dataBinding

符号:类DataBindingComponent位置:类ActivityMainBinding/ home / chetan / project / newGradle / app / build /生成/source/dataBinding/baseClasses/debug/com/sko/gradledemo/databinding/ActivityMainBinding.java:49:错误:找不到符号@Nullable DataBindingComponent组件){

符号:类DataBindingComponent位置:类ActivityMainBinding/home/chetan/project/newGradle/app/build/generated/source/dataBinding/baseClasses/debug/com/sko/gradledemo/databinding/ActivityMainBinding.java:60:错误:找不到符号@Nullable DataBindingComponent组件){

符号:类DataBindingComponent位置:类ActivityMainBinding5个错误

FAILURE:构建失败,出现异常。什么地方出了错:任务':app:compileDebugJavaWithJavac'的执行失败。 java.lang.NoClassDefFoundError:javax / annotation / Generated

android android-databinding
1个回答
0
投票

当我使用命令行./gradlew :app:assembleDevDebug时在我的项目中得到了这个,但是在Android Studio中运行我的项目时却没有。问题是注释处理重新查询(在您的情况下为dataBinding)失败,并且其依赖关系已在较新的JDK中删除。

我的问题归结为使用openjdk version "13.0.1"的“系统” JDK到Gradle。即使使用JDK 8将JAVA_HOME设置为特定的值,Gradle仍在使用“系统”值。使用打印./gradlew -vJVM: 13.0.1 (Oracle Corporation 13.0.1+9)很容易发现。

我通过在项目根目录的gradle.properties文件中将JDK主页设置为与Android Studio捆绑在一起的JDK来解决。

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home

此后,该项目可使用命令行正常运行。希望它能帮助别人。

© www.soinside.com 2019 - 2024. All rights reserved.