尝试在Android 4.4.2上创建一个反应原生项目,我得到了这个错误屏幕
却找不到解决的办法。我尝试重新启动packager,重新连接设备,甚至重新安装react native并开始新的项目。在6.0.0和更高版本上,它工作得很好。
尝试在Android 4.4.2上创建一个反应原生项目,我得到了这个错误屏幕
却找不到解决的办法。我尝试重新启动packager,重新连接设备,甚至重新安装react native并开始新的项目。在6.0.0和更高版本上,它工作得很好。
当前回答
在单独的终端上,将您的设备连接到计算机并运行以下命令:
react-native start
cd user/Library/Android/sdk/platform-tools/
./adb reverse tcp:8081 tcp:8081
应用终端:
react-native run-android
install apk on your device from this location android/app/build/outputs/apk/app-debug.apk
其他回答
对此,一个可能的解决方案是,您很可能不首先捆绑应用程序,而是执行以下步骤,然后将app-debug.apk部署到您的设备上
$ cd myproject
$ react-native start > /dev/null 2>&1 &
$ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
(如果文件夹资产不存在,创建它)
然后从项目根运行
$> (cd android/ && ./gradlew assembleDebug)
将创建的apk安装到您的设备,地址:android/app/build/outputs/apk/app-debug.apk
如果这解决了你的问题,请告诉我
编辑:
你可以把它放在你的包裹里。我相信它会在即将发布的react-native版本中被修复,并将在组装最终的APK之前执行,因此这将不需要(我希望也是如此)
把:
"scripts": {
"build": "(cd android/ && ./gradlew assembleDebug)",
"start": "node node_modules/react-native/local-cli/cli.js start",
"bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/"
},
或者如前所述的旋度等效,但对于大多数情况,上面的更健壮
我的问题是,我通过我的AndroidManifest.xml文件,并删除了行
< uses-permission android: name = " android.permission。互联网" / >
因为我的应用程序不需要网络。然而,react本机调试应用程序确实需要互联网访问(访问packager)。:)
如果您正在使用expo,并且正在物理设备上运行它,我建议您关闭metro捆绑包,然后启动expo并尝试它
这对我来说是有效的(在尝试了我发现的所有其他解决方案之后…):
在\Android\sdk\platform-tools中运行adb reverse tcp:8081 tcp:8081
当我们开始react native项目#1时,大多数人都是第一次面对这个问题。
几个简单的步骤解决了我的问题:
我使用命令创建了一个示例项目:
react-native init ReactProject1
解决方案
修复是帮助local-cli\runAndroid\adb.js找到adb.exe,方法与local-cli\runAndroid\runAndroid.js相同:
\node_modules\react-native\local-cli\runAndroid . find replace statement under projectname(不管你给了什么
替换:
const devicesResult = child_process.execSync('adb devices');
By:
const devicesResult = child_process.execSync( (process.env.ANDROID_HOME ? process.env.ANDROID_HOME + '/platform-tools/' : '') + 'adb devices');
在完成上述替换后,只需在cmd中运行react-native run-android,它将捆绑apk,并首先尝试在您的设备中本地安装js bundle。(成功了)