我是反应原生的新人。 我已经使用' react-native run-android'在Ubuntu上运行了本机项目。命令。我在模拟器上得到了错误 "无法从资源加载脚本&index.android.bundle'。确保您的软件包打包正确或者您正在运行软件包服务器。"
答案 0 :(得分:20)
我也得到了这个,我使用项目目录中的以下命令解决了这个问题:
$ mkdir android/app/src/main/assets
$ react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
$ react-native run-android
答案 1 :(得分:12)
使用 npm版本4.3.0 react-native-cli版本2.01 react-native version 0.49.5
在项目目录中,
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
文件名已从 index.android.js 更改为 index.js
答案 2 :(得分:7)
就我而言(将React Native作为新的Activity
嵌入到现有的Android代码库中),问题是Android Studio自动导入了错误的 BuildConfig 。
错:
import com.facebook.react.BuildConfig;
右:
import com.mywebdomain.myapp.BuildConfig;
这适用于您居住此代码块的任何地方:
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
答案 3 :(得分:2)
This helped me resolve the problem in following steps.
If not than (in project directory) mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
答案 4 :(得分:2)
Ubuntu
我第一次用react-native init project-name
创建了一个新应用。我遇到了同样的错误。因此我将按照以下步骤解决此问题。
sudo chown user-name-of-pc /dev/kvm
。Use USB to Transfer photos (PTP)
。index.js
可以用于项目root
的目录中,然后在cd project-name
目录之后从控制台运行以下命令。react-native bundle --platform android --dev false --entry-file index.js --bundle-output android / app / src / main / assets / index.android.bundle --assets-dest android / app / src / main / res
或者然后是index.android.js
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android / app / src / main / assets / index.android.bundle --assets-dest android / app / src / main / res
./studio.sh
目录中运行android-studio/bin
。它将打开Android Studio。react-native run-android
。答案 5 :(得分:1)
在最新版本的React Native(0.46)中似乎存在问题。使用以前的版本似乎可以解决问题react-native init name --version react-native@0.45.1
,并在运行react-native run-android
时删除错误。
编辑:现在已在版本0.46.1中修复。
答案 6 :(得分:1)
对于此错误:
无法从资产'index.android.bundle'
加载脚本
1)在以下位置检查“资产”文件夹:
mkdir android\app\src\main\assets
如果文件夹不可用,请手动创建名为“assets”的文件夹。并在终端中执行Curl命令。
2)。卷曲命令:
curl "http://localhost:8081/index.android.bundle?platform=android" -o"android/app/src/main/assets/index.android.bundle"
它将自动在assets文件夹中创建“index.android.bundle”文件并解决问题。
3)然后:
react-native run-android
答案 7 :(得分:1)
在我的情况下,问题出现在React Activity文件的这一行中:
mReactInstanceManager = ReactInstanceManager.builder()
...
.setUseDeveloperSupport(BuildConfig.DEBUG)
...
BuildConfig.DEBUG必须设置为true,而在我的情况下它是假的
答案 8 :(得分:1)
仅适用于Windows用户:
PATH
,package.JSON
文件
更改本机版本"react-native": "0.55.2"
,并
babel "babel-preset-react-native": "4"
,然后运行npm install
react-native run-android
答案 9 :(得分:1)
我被困在同一个问题上好几个小时,而解决我问题的方法是:
在项目的主目录以及“ newreactproject \ android \ app \ src \ main”中创建“ assets”文件夹。然后将此脚本放入package.json "android-android": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && react-native run-android"
喜欢:
"name": "newreactproject",
"version": "0.0.1",
"private": true,
"scripts": {
"android-android": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && react-native run-android",
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
}
答案 10 :(得分:0)
我在https://github.com/facebook/react-native/issues/15388
的帖子中发现了一个解决方案手动设置调试服务器主机&手机上应用的设备设置端口。
逐步在Android上弹出并运行CRNA
在终端:
create-react-native-app myApp
cd myApp
yarn run eject
(我使用默认选项“常规React Native项目”)react-native run-android
(现在应该在手机上编译和安装应用程序)
电话:
index.js
”操作(在运行react-native run-android
时打开)Live Reload(源文件更改时)也可以 - 只需摇动手机并触摸“启用Live Reload”
您可以从Android Studio运行该项目,但您需要首先使用CRNA项目根目录中的react-native start
命令启动Metro Bundler。
答案 11 :(得分:0)
我也收到此错误。但是adb reverse
为我工作
答案 12 :(得分:0)
我正在使用ubuntu 18.04 LTS,反应本机:0.55.2。就我而言,这里很少有解决问题的方法。
,然后再运行npm。您可能会看到一个错误 错误Metro Bundler无法侦听端口8081。 发生这种情况是因为可能已经在运行一个进程
解决方案-类型sudo lsof -i :8081
您将看到类似于此的输出
**命令PID用户FD类型的设备大小/关闭节点名称
node 5670 tasif 17u IPv6 80997 0t0 TCP *:tproxy (LISTEN)**
先输入kill -9 (PID number)
,然后再输入run npm android
。
如果仍然不起作用,请再次键入npm start。您可能会看到此错误
E RROR ENOSPC: no space left on device, watch'....../......./.....'
解决方案:
$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p
然后输入npm run android
。
请转到此链接以查看不同的解决方案和更多详细信息https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
删除模拟器并重新构建。杀死最近的终端,然后构建模拟器并重新启动。