无法在Windows上从资产index.android.bundle加载脚本
我试图在我的设备上首次运行我的第一个反应原生项目(android 4.2.2)。
我得到:
无法从资源index.android.bundle加载脚本
我使用的命令:
cd (project directory)
-
react-native start
-
react-native run-android
我在遵循React Native 教程 (在Linux上开发并针对Android)时遇到了同样的问题。
这个问题帮助我解决了以下步骤中的问题。
- (在项目目录中)
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
你可以通过将它们放在package.json
scripts
部分来自动执行上述步骤,如下所示:
"android-linux": "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"
然后你可以每次从你的命令行执行npm run android-linux
。
您可以按照官方页面上提到的指示来解决这个问题。 这个问题发生在真实的设备上,因为JS软件包位于您的开发系统上,而真实设备中的应用程序并不知道它的位置。
我遇到了一个真正的Android设备相同的问题。
解决scheme:基于Niltoid的这个答案
- find您的本地IP
- 打开应用程序,摇动你的Android设备
- 去开发设置和>debugging服务器…
- 粘贴您的IP和端口; XXXX:8088“(其中X是您的本地IP)
对于Mac用户:打开您的networking首选项,在这里您将获得您的本地IP。
使用npm版本4.3.0 react-native-cli版本2.01 react-native版本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
确保你已经添加了/ path / to / sdk / platform-tools到你的pathvariables。
运行react-native run-android时,它会运行adb reverse tcp:<device-port> tcp:<local-port>命令将请求从设备转发到在您的计算机上本地运行的服务器。 如果没有findadb,你会看到类似的东西。
/bin/sh: 1: adb: not found Starting the app (.../platform-tools/adb shell am start -n com.first_app/com.first_app.MainActivity... Starting: Intent { cmp=com.first_app/.MainActivity }
如果您使用Windows,请按以下方式运行命令,或者如果出现错误“无法find条目文件index.android.js”
-
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
如果在运行react-native run-android
命令时,跟踪的第二行是
JS server not recognized, continuing with build...
这意味着应用程序打包程序无法启动,应用程序将无法加载,没有一些额外的步骤。 请注意,追踪结束仍然报告成功:
BUILD SUCCESSFUL
问题可能是一些端口冲突(在我的情况下,这是我完全忘记了默认的IIS网站)。 这个问题的另一个performance就是未能在Chrome中打开http://localhost:8081/debugger-ui
URL。
一旦端口冲突解决,跟踪将报告
Starting JS server...
那么会打开一个额外的节点窗口( node ...cli.js start
),并且应用程序将成功加载/重新加载。
之后,您应该能够通过http://localhost:8081/debugger-ui
在Chrome中打开debugging控制台。
如果你正在物理设备上运行你的应用程序,并得到这个错误
unable to load script from assets index.android.bundle
尝试运行命令:
adb reverse tcp:8081 tcp:8081
它为我工作…
在mac有同样的问题,花了2天后,我终于能够得到工作。
由于Emulator cellular data was turned off
,我得到unable to load script from assets index.android.bundle make sure your bundle is running
。
确保您的Emulator cellular data is turned on
通过执行此包服务器可以绑定index.android.js
。 希望它有助于处于发展阶段的人。
操作系统:Windows
尝试上述两种方法后解决此问题的另一种方法
(因为我安装的SDK 不在DEFAULT LOCATION中,比如C:\ users \“user_name”\ appdata \ local \ sdk )
如果你注意到命令行宣布:“'adb'不是…”
所以这是我如何克服:
例子:我在D:\ Android \ sdk中安装了SDK
所以我会在System Variables 2中插入更多的行:
D:\Android\sdk\tools D:\Android\sdk\platform-tools
(如果你不知道如何编辑path系统variables,这里的主题: https : //android.stackexchange.com/questions/38321/what-do-i-type-in-path-variable-for-adb-服务器启动从cmd / 38324 )
然后我再次运行cmd: react-native run-android
它为我工作。
这个问题也可能是由于设备/仿真器的蜂窝数据被closures造成的。 确保你检查。
对于这个错误:“无法从资产加载脚本'index.android.bundle'”
1)。 检查“assets”文件夹:mkdir android \ app \ src \ main \ assets
如果文件夹不可用,请手动创build名称为“资产”的文件夹。 并在terminal执行Curl命令。
2)。 curl命令:curl“ http:// localhost:8081 / index.android.bundle?platform = android ”-o“android / app / src / main / assets / index.android.bundle”
它会自动在assets文件夹中创build“index.android.bundle”文件并解决问题。
3)。 react-native run-android
即使在模拟器上运行,也有同样的问题。 我做了一个快速的解决方法,以便我可以有正常的开发工作stream程。
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override public boolean getUseDeveloperSupport() { // return true here to load JS from the packager // BuildConfig.DEBUG for me was set to false which meant it // it was always trying to load the assets from assets folder. return true; } @Override protected String getJSMainModuleName() { return "index"; } };
尝试进行生产构build时可能将不得不恢复更改。
当我更新反应原生0.49.5,这个问题出现,当我跟着这个突破更改和弃用
它消失了。
- popup片段叠加而不popupPop-Animation
- Android和IOS需要什么样的字体文件?
- 部署Android应用程序时注意到libdvm.so的安全警告
- DownloadManager.Request.setNotificationVisibility失败,并显示jSecurityException:无效值:2
- Android SQLiteDatabase中的游标大小限制
- Android – 造型寻求酒吧
- Activity,AppCompatActivity,FragmentActivity和ActionBarActivity:何时使用哪个?
- 电晕SDK免费的替代品
- Eclipse Indigo – 无法安装Android ADT插件