首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从android java.lang.NoClassDefFoundError命令行获取错误: javax/annotation/Generated

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

Stack Overflow用户
提问于 2019-01-10 18:27:19
回答 1查看 2.3K关注 0票数 4

当从命令行构建android应用程序时,我得到了错误执行失败的任务‘:应用程序:编译调试’。java.lang.NoClassDefFoundError: javax/注解/生成

我在安卓应用程序中启用了dataBinding

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

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

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

失败:生成失败,出现异常。出错之处:执行任务':app:compileDebugJavaWithJavac‘失败。java.lang.NoClassDefFoundError: javax/注解/生成

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-31 13:17:15

当我使用命令行./gradlew :app:assembleDevDebug时,我在我的项目中得到了这个,但在Android studio中运行我的项目时却没有。问题是批注处理requery (在您的例子中是dataBinding)失败,因为在较新的JDK中删除了依赖项。

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

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

代码语言:javascript
运行
复制
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home

在此之后,使用命令行可以很好地运行项目。希望它能帮助其他人。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54126627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档