随着 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
Run Code Online (Sandbox Code Playgroud)
所以,我有什么
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
Run Code Online (Sandbox Code Playgroud)
./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: …Run Code Online (Sandbox Code Playgroud)