【问题标题】:Getting error from comand line in android java.lang.NoClassDefFoundError: javax/annotation/Generated从 android java.lang.NoClassDefFoundError: javax/annotation/Generated 中的命令行获取错误
【发布时间】:2019-06-05 04:50:06
【问题描述】:

在从命令行构建 android 应用程序时,我收到错误 Execution failed for task ':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/generated/source/dataBinding/baseClasses/debug/com/sko/gradledemo/databinding/ActivityMainBinding.java:60:错误:找不到符号 @Nullable DataBindingComponent 组件){

符号:类 DataBindingComponent 位置: ActivityMainBinding 类 5 个错误

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

【问题讨论】:

标签: android android-databinding


【解决方案1】:

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

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

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

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

在此之后,项目使用命令行运行良好。希望它可以帮助别人。

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多