随着Android Studio 4.2和AGP 4.2.0的发布,我们现在可以在android项目中使用Java 11。我确实更新了所有内容以指向Java 11,但编译失败。如果我把JavaVersion.VERSION_1_8放回去,它就能用了。
所有的编译错误都在数据绑定中(?或视图绑定)生成类,并抱怨找不到android类或包。我已经尝试了很多方法,都不起作用,JAVA_HOME指向java11,studio中的JDK指向java11,但仍然是这样:
some_module:compileDebugJavaWithJavac FAILED
../DataBinderMapperImpl.java:3: error: package android.util does not exist
import android.util.SparseArray;
^
../DataBinderMapperImpl.java:4: error: package android.util does not exist
import android.util.SparseIntArray;
.. error: package android.view does not exist所以,我所拥有的
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}./gradlew -version返回:
------------------------------------------------------------
Gradle 6.8.3
------------------------------------------------------------
Build time: 2021-02-22 16:13:28 UTC
Revision: 9e26b4a9ebb910eaa1b8da8ff8575e514bc61c78
Kotlin: 1.4.20
Groovy: 2.5.12
Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM: 11.0.2 (Oracle Corporation 11.0.2+9)
OS: Mac OS X 10.15.7 x86_64java -version返回
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)javac -version返回
javac 11.0.2非常感谢您的帮助,谢谢!
发布于 2021-07-31 13:36:49
要使用Java 11,应更新到Android Studio Arctic Fox | 2020.3.1,并将编译选项设置为
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11如果您使用的是Kotlin,还可以
kotlinOptions { jvmTarget = JavaVersion.VERSION_11.toString() }https://stackoverflow.com/questions/67437687
复制相似问题