返回

React Native 0.73 Java 工具链错误解决指南:一步步排除故障

Android

修复 React Native 0.73 中的“Java 工具链错误”

简介

在将 React Native 应用程序升级到 0.73 时,开发人员可能会遇到一个常见的错误:“The new Java toolchain feature cannot be used at the project level in combination with source and/or target compatibility”。此错误源于 Java 工具链和源/目标兼容性之间的不兼容。本文将提供详细指南,帮助你解决此问题并成功升级你的应用程序。

症状

升级 React Native 应用程序时,你可能会在控制台中看到以下错误消息:

The new Java toolchain feature cannot be used at the project level in combination with source and/or target compatibility

原因

此错误是由 Java 工具链和源/目标兼容性之间的冲突引起的。Java 工具链是一个新功能,在 React Native 0.73 中引入,而源/目标兼容性是设置项目中 Java 代码的源代码和目标兼容性级别的设置。

解决方案

要解决此错误,你需要执行以下步骤:

1. 更新 Gradle 版本

  • 更新你的 Gradle 版本。在 build.gradle 文件中,将 com.android.tools.build:gradle 更新为最新版本。

2. 升级 React Native 版本

  • 升级你的 React Native 版本。在 android/build.gradle 文件中,将 com.facebook.react:react-native 更新为最新版本。

3. 更新 Java 和编译器版本

  • 确保你的 Java 和编译器版本与 React Native 0.73 兼容。将 compileSdkVersiontargetSdkVersion 更新为 33。

4. 禁用 Java 工具链

  • 要禁用 Java 工具链,请在 android/build.gradle 文件中添加以下代码:
defaultConfig {
    javaCompileOptions {
        annotationProcessorOptions {
            includeCompileClasspath = false
        }
    }
}

5. 清理并重建项目

  • 最后,清理并重建你的项目以应用更改。运行 ./gradlew clean assembleDebug 命令。

常见问题解答

1. 为什么需要禁用 Java 工具链?

Java 工具链和源/目标兼容性之间存在冲突。禁用 Java 工具链可以解决此冲突。

2. 更新 Java 和编译器版本到 33 有什么影响?

Java 8 已不再受支持,因此必须将 Java 和编译器版本更新到 33 以使用 Java 11。

3. 禁用 Java 工具链会对我的应用程序有什么影响?

禁用 Java 工具链不会对你的应用程序的运行或功能产生任何影响。它只是删除了一个不必要的依赖项。

4. 我还可以使用哪些其他方法来解决此错误?

在某些情况下,更新 Kotlin 版本或将 kotlinOptions 块添加到 android/build.gradle 文件中可能有助于解决此错误。

5. 此错误是否只影响 React Native 应用程序?

否,此错误也可能影响其他使用 Java 工具链的 Android 应用程序。

结论

通过遵循本文中的步骤,你应该能够成功解决 React Native 0.73 中的 Java 工具链错误。如果问题仍然存在,请咨询 React Native 社区或官方文档以寻求进一步的帮助。