无法从资产加载脚本' index.android.bundle'

时间:2017-06-20 09:00:10

标签: android react-native

我是反应原生的新人。 我已经使用' react-native run-android'在Ubuntu上运行了本机项目。命令。我在模拟器上得到了错误 "无法从资源加载脚本&index.android.bundle'。确保您的软件包打包正确或者您正在运行软件包服务器。"

13 个答案:

答案 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创建了一个新应用。我遇到了同样的错误。因此我将按照以下步骤解决此问题。

  1. 在我的情况下,首先运行sudo chown user-name-of-pc /dev/kvm
  2. 从Android手机调试时,请选择Use USB to Transfer photos (PTP)
  3. 在“项目名称/ android / app / src / main”中创建文件夹资产。
  4. 确保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目录中运行
  1. 命令android-studio/bin。它将打开Android Studio。
  2. 运行命令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用户:

  1. 复制adb位置的路径并在系统变量中设置为PATH
  2. 打开项目结构并删除节点模块文件夹。
  3. 编辑项目package.JSON文件 更改本机版本"react-native": "0.55.2",并 babel "babel-preset-react-native": "4",然后运行npm install
  4. 重新启动cmd和js服务器,并通过react-native run-android
  5. 运行您的react native项目

答案 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

在终端:

  1. create-react-native-app myApp
  2. cd myApp
  3. yarn run eject(我使用默认选项“常规React Native项目”)
  4. react-native run-android
  5. (现在应该在手机上编译和安装应用程序)

    电话:

    1. 运行应用程序(期望看到红色错误屏幕! - 单击左下角的“关闭”按钮)
    2. 摇动手机并选择开发设置
    3. 选择调试服务器主机&设备端口并设置为192.168.x.x:8081(当然,将其设为实际的LAN IP)
    4. 在手机上重新启动应用,您应该会看到顶部的绿色条“从192.168.x.x加载:8081 ......”
    5. 您还应该在Metro Bundler中看到一些“捆绑index.js”操作(在运行react-native run-android时打开)
    6. 捆绑完成后,应用应在您的Android设备上运行!
    7. 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。就我而言,这里很少有解决问题的方法。

    在终端中运行
  1. ,然后再运行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

  2. 如果仍然不起作用,请再次键入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

  3. 删除模拟器并重新构建。杀死最近的终端,然后构建模拟器并重新启动。