react-native run-android 失败 MacOS

Posted

技术标签:

【中文标题】react-native run-android 失败 MacOS【英文标题】:react-native run-android Fails MacOS 【发布时间】:2020-08-03 07:55:39 【问题描述】:

完整的控制台输出如下

info Running jetifier to migrate libraries to androidX. You can disable it using "--no-jetifier" flag.
Jetifier found 967 file(s) to forward-jetify. Using 8 workers...
info JS server already running.
info Installing the app...

FAILURE: Build failed with an exception.

* What went wrong:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 696ms

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/getting-started.html#android-development-environment. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

FAILURE: Build failed with an exception.

* What went wrong:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 696ms

    at makeError (/Users/user/Desktop/sa/MyReactApp/node_modules/execa/index.js:174:9)
    at /Users/user/Desktop/sa/MyReactApp/node_modules/execa/index.js:278:16
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async runOnAllDevices (/Users/user/Desktop/sa/MyReactApp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:94:5)
    at async Command.handleAction (/Users/user/Desktop/sa/MyReactApp/node_modules/@react-native-community/cli/build/index.js:186:9)

Bash_profile

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_AVD_HOME=$HOME/.android/avd
alias emulator='$ANDROID_SDK_ROOT/tools/emulator'

请求的附件

    来自 Android Studio 的 Android SDK 链接

    已安装 SDK 工具

    npx @react-native-community/cli 医生结果

已安装 Android 模拟器 Nexus 6P(Android R 和 Pie)

React Native 新手 它在 ios 上完美运行 但它无法在 Android 模拟器中启动

尝试过的方法

    npm 开始 npx react-native run-ios npx react-native run-android

【问题讨论】:

这是否发生在一个以 react-native init ProjectName 开始的空项目中? 不,我也为 iOS 运行了代码 只是一个示例应用程序。我正在学习 react-Native 所以做了一个小 Demo 并想在 Android 中看到。 iOS 可以正常工作,但 Android 不行 【参考方案1】:

可能是因为上面提到的JDK版本。 你可以通过运行 react native doctor 来验证

npx @react-native-community/cli doctor

【讨论】:

这表明缺少 Android SDK(但我已经安装了 Android Studio,它也有 Android SDK。这是我的 Android SDK 路径(/Users/user/Library/Android/sdk)你能帮忙吗接下来我能做什么 @jatingarg 你能告诉我 Android Studio 显示的 SDK 位置吗?如果您可以看到工具文件夹或任何其他文件夹丢失,请检查目录。在您的问题中与我分享您的 Android SDK 文件夹的屏幕截图 你的java版本是多少?只需运行 java --version 并共享。像这样的一些问题也是因为 java 问题check here 并确保您使用其他选项从 android studio 下载了特定的 28.0.3 SDk 工具。【参考方案2】:

安装 JDK 1.8 并设置 $JAVA_HOME 环境变量并尝试再次运行该应用程序。

错误是由于JDK版本较低或未安装JDK。

【讨论】:

【参考方案3】:

您的问题只需按照以下步骤即可解决: 将 node_modules 依赖项 jetify / 转换为 AndroidX 想象一下,你有一个 react-native 项目。您的库依赖项之一转换为 AndroidX。您需要使用新版本。

所以现在您需要将您的应用程序转换为 AndroidX,但是您的许多 react-native 库都提供了本机 Java 代码并且尚未更新。这是怎么做到的?

首先,使用 Android Studio 的重构工具将您的应用重新转换:Android 开发者文档 npm install --save-dev jetifier npx 喷射 npx react-native run-android (您的应用程序应该正确编译和工作) 在你的 package.json 的 postinstall 目标中调用 npx jetify run (任何时候你的依赖更新你都必须再次jetify

您也可以点击此链接:https://www.npmjs.com/package/jetifier

如有任何困惑,请随意。

【讨论】:

同样的错误,我按照链接仍然错误的步骤进行操作 打开项目 I Android Studio。让 Gradle 编译成功。重构->迁移到 AndoidX,然后运行链接具有的每个步骤 (4-5) 步骤。仍然错误是一样的 你们已经完全阅读了这篇文章,您需要安装 bob 构建工具,请按照上面的链接阅读文章中给出的所有注释或点击此链接:github.com/react-native-community/bob/blob/master/README.md#L44 如有任何混淆,请随意。跨度> 您好 仍然没有解决。我在开发者论坛中添加了一个问题。 github.com/facebook/react-native/issues/28712【参考方案4】:

这个链接是完整的解决方案,但如果你有win32,但如果你有win64,那就有点问题了。

 **https://www.npmjs.com/package/jetifier#do_you_need_this**

希望这个答案对你有用 有任何问题都可以。

【讨论】:

以上是关于react-native run-android 失败 MacOS的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-native run-android 运行时出现 React-Native 错误

react-native run-android 失败

运行 react-native run-android 时出错

react-native run-android 失败 MacOS

react-native run-android 不起作用:/

运行 react-native run-android 时出错