如何解决React Native中的(Could not initialize class org.codehaus.groovy.reflection.ReflectionCache)问题

61

$ npx react-native run-android info 正在运行 Jetifier 来将库迁移到 AndroidX。您可以使用“--no-jetifier”标志禁用它。 Jetifier 找到 864 个文件需要进行转换和更新。正在使用 4 个工作进程... info 正在启动 JS 服务器... info 正在启动模拟器... error 无法启动模拟器。原因:30 秒内无法启动模拟器。 warn 请手动启动模拟器或连接设备,否则应用程序可能无法启动。 info 正在安装应用...

失败:构建异常。

  • 出了什么问题: 无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。使用 --scan 运行以获取完整见解。

  • 获取更多帮助:https://help.gradle.org

构建失败,用时 1 分钟 23 秒。

错误:无法安装该应用。确保您已设置好 Android 开发环境:https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment。使用 --verbose 标志运行 CLI 以获取更多详细信息。 错误:命令失败:gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

失败:构建异常。

  • 出了什么问题: 无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。使用 --scan 运行以获取完整见解。

  • 获取更多帮助:https://help.gradle.org

构建失败,用时 1 分钟 23 秒。

at checkExecSyncError (child_process.js:629:11)
at execFileSync (child_process.js:647:13)
at runOnAllDevices (E:\work\react-native\AwesomeProject1\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:94:39)
15个回答

168

我认为我曾经遇到过相同的问题。在安装了RN(2020年5月20日)之后,我遇到了这个错误。我在https://github.com/gradle/gradle/issues/10248上找到了这个解决方案。

简而言之:

  1. 打开您的RN项目中的/android/gradle/wrapper/gradle-wrapper.properties文件。

  2. 找到以distributionUrl开头的行。 将gradle版本更改为gradle-6.3-all.zip

在我的项目中,它是:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip

我把它改成了:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

就是这样。


在使用 npx react-native-clean-project clean-project-auto 进行清理后,我遇到了这个问题。通过这种修复方式,问题得以解决! - DfKimera

99

我在使用 Mac OS 和 React Native v0.62 时遇到了同样的错误。

请正确执行以下指令:React native 环境设置

添加以下变量可解决我的问题:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"


4
在Linux上,我有一个路径,它不包括"jdk/",现在已经可以工作了。 在执行export JAVA_HOME=/usr/lib/jvm/java-14-openjdk/之前 ==> 执行 export JAVA_HOME=/PATH/TO/android-studio/jre/ - mansuetus
显然将路径设置为 $(/usr/libexec/java_home) 不起作用,但是你的起作用。 - AlexanderD

22
在React Native版本0.62.x中,即使初始化的应用程序也没有准备好进行开发构建。
我将Gradle版本更改为最新版本,并且可以进行干净的构建,所以请更改此文件:
// this file => /android/gradle/wrapper/gradle-wrapper.properties

来自:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip

给:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

请注意我所使用的最新版本Gradle是6.5。当您阅读这个答案时,请查看此链接以获取Gradle的最新版本号。

更新于2023年11月

8.2.1


9
我通过以下步骤解决了这个问题:
  1. 安装 Android Studio 3.5(或更高版本)
  2. 安装 Java 1.8
  3. 如果您已经安装了 Java JDE 14.x.x,则需要从 library/java/JavaVirtualMachines/jdk-14.x.x.jdk 文件夹中移除它(在 Mac OS 上)
  4. 安装旧版的 JDE(我安装了11.0.6版本)
  5. 运行命令 npm run android!

2
非常感谢!这对我很有效。 PS:我换了一台新电脑。然后从Github拉取我的React-Native项目,但是npm instapp && react-native run-android失败了。 我按照你说的做了,嘭!现在一切都正常了。 - Monero Jeanniton

2

只需按照以下两个步骤,即可享用您的咖啡。

  1. 导航至 'android' > gradle > wrapper > gradle-wrapper.properties

  2. 将 'distributionUrl' 从旧版本更改为 >

    distributionUrl=https://services.gradle.org/distributions/gradle-6.3-all.zip


1

2021年8月

我正在使用JDK 16.0.1,并遇到了这个问题。所以,在JDK 16.0.1中,您需要gradle7.0版本。

我通过前往/android/gradle/wrapper/gradle-wrapper.properties并更改以下内容来解决它:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip

1
当您使用的gradle版本与您的环境不兼容时,会发生此错误。因此,您只需要将gradle版本更新到最新版本Gradle Versions。只需打开项目文件中的/android/gradle/wrapper/gradle-wrapper.properties即可。

0

可能是因为您使用了Gradle作为构建系统和JDK14,而且Gradle版本较旧。参考:

如果您使用Gradle Wrapper,则请参考

$PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties

属性 distributionUrl 应为:

distributionUrl=https://services.gradle.org/distributions/gradle-6.3-bin.zip

如果是旧版本,请更改它,运行./gradlew clean build,然后再试一次。

0

在Mac OS中,更新JAVA_HOME对我有用

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"


0

这是因为您的Gradle版本不受Java JDK支持。如果您使用JDK版本15.0.2,则需要将Gradle版本更改为6.6.1或6.7。

在Android Studio中更改Gradle版本。

android[project_name]/gradle/wrapper/gradle-wrapper.properties

打开这个文件并设置它

distributionUrl=https://services.gradle.org/distributions/gradle-6.6.1-all.zip

那么这个问题就会得到解决。

检查Java JDK版本。

打开cmd。 运行echo %JAVA_HOME%

然后您还可以在Google上搜索以检查Gradle支持的JDK版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接