react-native run-android 命令失败,但 gradlew installDebug 工作



我在OSX上使用react-native 0.43.3。 我尝试在安卓上运行应用程序并收到消息

react-native run-android
Scanning 568 folders for symlinks in /Users/ruci.k/project/mayacrew/supermembers/supermembers/node_modules (5ms)
JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)...
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

./gradlew installDebug给了我一些错误并修复了所有错误。 最后构建成功,应用程序正在Android设备上运行。

但是react-native run-android命令仍然不起作用。 只有./gradlew installDebug命令有效。

我可以检查使用react-native run-android命令吗?

我不明白这是怎么发生的。

运行

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

为我工作

运行以下命令

chmod 755 android/gradlew

在应用根文件夹内 然后运行

react-native run-android

创建 react 原生应用后,尝试

sudo chmod -R 777 node-modules
sudo chmod -R 777 android 
export ANDROID_HOME=~/Library/Android/sdk

现在运行

react-native run-android 

尝试删除android,ios文件夹,然后执行react-native upgrade然后重试react-native run-android之后,如果您收到类似

找不到 SDK 位置。使用 local.properties 文件中的 sdk.dir 或 ANDROID_HOME 环境变量定义位置。

然后在文件夹中创建一个名为 local.properties 的文件

人造人

并插入以下行sdk.dir =/path/to/Android/Sdk在此之后一切都应该没问题

注意:如果您在android/ios文件夹中进行了一些更改,请在删除文件夹之前保留其备份

cd android && sudo ./gradlew clean

这对我有用。尝试一下,让我知道它是否有帮助

当我从 GitHub 导入项目时,我遇到了同样的问题。

请按照以下步骤从 MAC 操作系统在 Android 设备中运行您的 react-native 项目

  1. 从根项目中删除"node_modules"文件夹。
  2. 在项目根文件夹中运行以下命令。

npm 安装

  1. 移动到项目根文件夹中的 android 文件夹。

    光盘

    安卓
  2. 依次运行以下命令以授予对 gradlew 文件的权限。

chmod +x ./gradlew

Xattr -l ./gradlew

xattr -d com.apple.quarantine ./gradlew

  1. 现在,回到项目根文件夹并在Android设备中运行项目。

React-native run-android

现在,您可以在连接的Android设备/模拟器上看到启动的应用程序。

在 Ubuntu 中,我使用了这个命令,它对我有用:

sudo react-native run-android

我遇到了同样的问题,刚刚在 android Studio 中打开了该项目,仅此而已。解决!

这个问题有两个原因

1-权限问题

如何修复它

sudo react-native run-android

chmod 755 android/gradlew

2-与Gradle不匹配的java版本

确保使用 Java 8 作为环境变量$JAVA_HOME

取决于您用于运行代码的终端

For zsh shell, export $JAVA_HOME at ~/.zshenv or ~/.zshrc.
For bash shell, export $JAVA_HOME at ~/.bash_profile or ~/.bashrc.

通过此命令安装 JDK

/usr/libexec/java_home -V

使用 ZSH 的示例

vi  ~/.zshrc
// paste the java export inside it 
export JAVA_HOME="JDK_8_Path_from_previous command"

保存更改

:x

确保已应用更改

source ~/.zshrc

现在进行测试

echo $JAVA_HOME

你必须改变你的build.gradle

compileSdkVersion 28  
buildToolsVersion "28.0.2"  
minSdkVersion 16  
targetSdkVersion 27  

并添加此行:

implementation "com.android.support:appcompat-v7:28.0.0"

检查模拟器是否已连接:

  1. 设置ANDROID_HOME路径:E:android-sdk-windows

  2. 设置路径D:C:Program Filesnodejs;C:Program FilesJavajdk1.8.0_111bin;E:android-sdk-windowsplatform-tools

  1. 转到终端中的文件夹 android
  2. 格拉德卢清洁
  3. 运行反应
  4. 原生运行安卓

也许安装守望者?

https://github.com/facebook/react-native/issues/10056

否则,对我来说,我实际上在文件夹中使用"npm start"。 npm 会知道运行正确的命令来启动 React Native,因为它位于 React native 目录中。

所以我所做的是从以下位置下载这个jar文件: 1:https://drive.google.com/file/d/1MHSJx-_0RHRzlrXBLAePKeWKQteke0Um/view?usp=sharing 并将其放入android/gradle/wrapper然后我回到项目目录并做了npm install然后我通过执行以下操作将目录更改为Android:cd android然后我运行以下命令

chmod +x ./gradlew

Xattr -l ./gradlew

现在我回到项目目录并运行react-native run-android

  1. 转到 C:\Users\ [用户名]
  2. 重命名或删除".gradle">
  3. 然后运行"反应原生运行安卓">

所以这是这个错误的三个解决方案,从中最有可能解决你的问题:

1:在您的安卓文件夹中添加本地属性文件

https://stackoverflow.com/questions/32634352/react-native-android-build-failed-sdk-location-not-found

2:尝试删除.gradle文件,然后构建(反应原生运行-安卓)

3:可能是在SDK工具下没有安装NDK(并行)和CMake。 相同的步骤是 Android Studio,其中包括打开SDK管理器的说明

在安卓工作室中打开安卓文件夹 点击SDK管理器(位于左上角第三个位置)

打开 SDK 管理器后,您必须转到 NDK 和 CMake 的 SDK 工具安装映像

在"SDK 工具"下,选择 NDK(并排)和 CMake,然后按"确定"按钮,让安装完成。 关闭后,Android Studio 和 react-native run-android。

1 .您的手机中应该有空间
2 . 开发人员选项打开
3 .USB调试选项也打开
4 。检查"adb 设备"设备是否已连接

我必须执行这些步骤才能让它运行。

  • 首次安装 dos2unix
  • 在安卓文件夹中运行dos2unix ./gradlew
  • 然后运行 ./gradlew clean
  • 最后运行反应原生运行安卓。

对我来说,这与 Mac 的 RAM 不足有关。

in gradle.properties put -XX:MaxPermSize=4096

例如像这样:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m

之后,它再次运行。

对我有用的是,

在模拟器设备上卸载以前安装的应用版本,并在之后运行react-native run-android

仔细检查错误消息。它将提供出了什么问题的线索。就我而言,在我的反应原生项目中安装 expo 后,主应用程序.java损坏了。我与备份进行了比较(您可以检查早期的工作提交),然后删除了错误行。

在此之后,它奏效了。

至于我在苹果 m1 上工作,我不得不将路径更改为以下内容:

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

只是路径的更改,以防万一它不起作用

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

最新更新