我正在将 Expo 从 48 更新到 49.0.23(包括 React Native 从 0.71.8 更新到 0.72.10)。
iOS 运行良好。
Android
./gradlew build
出现我无法绕过的错误:
Execution failed for task ':expo-modules-core$android-annotation:compileKotlin'.
> Inconsistent JVM-target compatibility detected for tasks 'compileJava' (11) and 'compileKotlin' (17).
我的 build.gradle 有:
buildscript {
ext {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
ndkVersion = "23.1.7779620"
kotlin_version = '1.8.0'
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath("com.facebook.react:react-native-gradle-plugin")
}
}
应用程序/build.gradle:
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
我根据react-native-community更新助手更新了gradle相关文件。 我没有在我的项目中设置任何特定版本的 Kotlin(但我也尝试强制执行 kotlinOptions - 效果也不好)。
我错过了什么? Expo包Java版本不一致可能是什么原因?
我最终将 Expo 更新到版本 51.0.31,将 React-native 更新到版本 0.74.5。对我来说,Java 和 Kotlin 版本的问题只能在 Expo 49 上重现(Expo 50 也工作正常)。