当从命令行构建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/注解/生成
发布于 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来解决这个问题。
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
在此之后,使用命令行可以很好地运行项目。希望它能帮助其他人。
https://stackoverflow.com/questions/54126627
复制相似问题