繁体   English   中英

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

[英]react-native run-android command failed, but gradlew installDebug work

我在 OSX 上使用 react-native 0.43.3。 我试图在 Android 上运行应用程序并获取消息

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

尝试删除 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 文件夹中进行了一些更改,请在删除文件夹之前保留其备份

创建您的本机应用程序后,请尝试

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

-react-native run-android 有效!

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

按照以下步骤从 MAC OS 在 Android 设备中运行您的 react-native 项目

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

安装

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

    光盘安卓

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

chmod +x ./gradlew

xattr -l ./gradlew

xattr -d com.apple.quarantine ./gradlew

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

react-native run-android

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

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

你必须改变你的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 Files\\nodejs;C:\\Program Files\\Java\\jdk1.8.0_111\\bin;E:\\android-sdk-windows\\platform-tools

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

    sudo react-native run-android
cd android && sudo ./gradlew clean

这对我有用。 试试看,让我知道它是否对人们有帮助

也许安装守望者?

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

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

始终以root身份运行此命令react-native run-android

如果以root身份运行它并遇到错误。 只需删除下载的gradle文件夹并再次运行。

这是你需要做的:

删除home/username/.gradle/下的文件夹

然后删除root上的那个:

sudo rm -r /root/.gradle/wrapper

然后再次运行: sudo react-native run-android

所以我所做的是从以下位置下载这个 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. 转到终端中的文件夹 android
  2. 渐变干净
  3. 运行 react-native run-android
  1. 转到 C:\\Users\\ [用户名]
  2. 重命名或删除“.gradle”
  3. 然后运行“react-native run-android”

所以这里是这个错误的三个解决方案,其中一个最有可能解决您的问题:

1:在你的android文件夹中添加local.properties文件

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

2:尝试删除 .gradle 文件,然后构建(react-native run-android)

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

在 Android Studio 中打开 android 文件夹 单击 SDK Manager(位于左上角第三个位置)

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

在 SDK Tools 下选择 NDK(side by side) 和 CMake,然后按 OK 按钮,让安装完成。 关闭 Android Studio 和 react-native run-android 后。

1 . 你的手机应该有空间
2 . 开发者选项
3 . USB 调试选项也打开
4 . 检查“adb devices”设备是否连接

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

  • 首先安装dos2unix
  • 在 android 文件夹中运行 dos2unix ./gradlew
  • 然后运行 ​​./gradlew clean
  • 最后运行 react-native run-android。

这个问题来自两个原因

1-权限问题

如何修复它

sudo react-native run-android

或者

chmod 755 android/gradlew

2- Java 版本与 Gradle 不匹配

确保您使用 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.

使用 zsh 的示例

vi  ~/.zshrc
// paste the java export inside it 
export JAVA_HOME=$(/usr/libexec/java_home -v1.8)

保存更改

:x

确保应用您的更改

source ~/.zshrc

现在进行测试

echo $JAVA_HOME

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

在 gradle.properties 中放 -XX:MaxPermSize=4096

例如像这样:

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

之后,它再次运行。

对我有用的是,

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

仔细检查错误消息。 它会为出了什么问题提供线索。 就我而言,在我的 react-native 项目中安装 expo 后,MainApplication.java 损坏了。 我与备份进行了比较(您可以检查早期的工作提交),然后删除错误行。

在此之后,它起作用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM