我正在尝试在我的设备(Android 4.2.2)上第一次运行我的第一个React Native项目。从资产index.android.bundle


中加载脚本我使用的命令:


br />

评论

在尝试jerry的答案之前,请先检查是否已在环境变量和路径platform-tool中设置了ANDROID_HOME。

这是最新版本中的错误。您必须通过使用react-native init ProjectName --version = 0.55.4使用以前的版本。问题应已解决。

相同的错误,相同的上下文,但是修复很容易:等待调试服务器从“正在加载依赖关系图...”更改为“正在加载依赖关系图”,完成并在应用程序上单击重新加载。

可以接受的答案是极其不便的hack,这会使构建过程和代码库复杂化。这里有更好的答案。

使用mkdir ... / assets && react-native bundle --platform ..无法完全解决此问题,请检查此:stackoverflow.com/a/55511803/10139109

#1 楼

在遵循React Native教程(在Linux上开发并定位到Android)时,我遇到了相同的问题。 br />(在项目目录中)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

您可以通过将上述步骤放置在scriptspackage.json部分中来实现上述步骤的自动化: />
"android-linux": "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"


那么您每次都可以从命令行执行npm run android-linux

评论


如果我们要修改文件index.android.js怎么办?每次在终端中,我们都必须插入命令react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android / app / src / main / assets / index.android。捆绑--assets-dest android / app / src / main / res

–莫利克
17年7月11日在6:46

每次从终端重新运行它时,它都会卡在“加载依赖关系图”中,这会花费太多时间。仅供参考,我正在使用ubuntu 14.04

–莫利克
17年7月13日在6:23

React本机较新的版本不包含index.android.js,因此请在命令中使用App.js。 :) 谢谢

– hinthaka Dinadasa
17-10-12在8:12

在我的情况下,@ ChinthakaDinadasa是index.js,而不是App.js

–费利克斯
17-10-20在9:07

这个家伙需要雕像!我的意思是,它确实不仅在Linux上而且在Windows 10上也有效

–重生
18-3-24在12:38



#2 楼

如果您在物理设备上运行应用程序并遇到此错误,请尝试运行以下命令:

unable to load script from assets index.android.bundle


对我有用...

评论


这解决了我的问题!谢谢!

–巴勃罗
18 Mar 23 '18 at 20:49

为我工作。对于那些在Windows的终端路径上没有android平台工具的人,adb可执行文件位于C:\ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools中。

–迈克波特
18年5月10日在14:06

我认为这应该是正确的答案,另一个似乎是hack。

–克里斯蒂安·戈麦斯(Cristian Gomez)
18年7月22日在18:14

这已为我解决了该问题(Windows,在物理设备上运行应用程序)。这是红色错误框上建议的修复程序之一。

–Tur1ng
18年11月15日17:30



它在macOS上对我有效,但是每次重新插入设备时都必须运行此程序。有什么办法可以使这种感动?

– Pauloco
19年2月8日在9:23

#3 楼

我花了几个小时试图弄清楚这个问题。我的问题并不特定于Windows,而是特定于Android。唯一不起作用的是访问应用程序中的开发服务器。


从Android 9.0(API级别28)开始,默认情况下禁用明文支持。


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>


了解更多信息:
https://stackoverflow.com/a/50834600/1713216

评论


谢谢。将targetSdkVersion升级到28后,这是我的问题。

–bencergazda
18-11-28在16:36



这是正确的答案。它实际上解决了网络通信问题。

–安德鲁·科斯特(Andrew Koster)
19 Mar 28 '19在19:45

这是React Native v0.59.2中使用的解决方案。

–Tur1ng
19-3-29在1:10



感谢您举报该问题-完全阻止了我的RN应用加载。令人失望的是,这里没有更好的错误消息传递:/

– greg7gkb
19年4月9日,0:14

作品!如果我亲自见到你,我会给你一枚奖章(-:

–亚伦·列维(Yaron Levi)
19年6月20日在10:42

#4 楼

使用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

评论


Kinda感到遗憾的是,FB发布了一个新版本,而不是修复此错误(显然会打击很多人),而是破坏了公认的解决方法!

–汤姆
17年12月7日在23:34

@IgorGanapolsky确保资产文件夹中有一个index.bundle文件

– Darshan Pania
18年1月15日在8:12

@DarshanPania该文件做什么?

– IgorGanapolsky
18年1月15日在14:08

@IgorGanapolsky该JS文件是您应用程序的入口。从RN 0.49开始,只有一个文件index.js而不是index.android.js或index.ios.js

– Darshan Pania
18年1月29日在9:48

对于linux:sudo 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

– Taohidul伊斯兰教
19年1月9日在15:11



#5 楼

我在真正的android设备上也遇到过同样的问题。

解决方案:根据Niltoid的回答


查找本地IP
打开应用并摇动您的Android设备
进行开发设置和>调试服务器...
粘贴您的IP和端口; X.X.X.X:8088“(其中X是您的本地IP)

对于Mac用户:打开您的网络偏好设置,您将在这里获得您的本地IP。

评论


为我工作(y)

– MAhipal Singh
18-09-26在12:35

#6 楼

如果您使用的是Windows,请按以下方式运行命令,或者遇到错误“找不到条目文件index.android.js”。


/> mkdir android\app\src\main\assets


#7 楼

您可以按照官方页面上提到的说明解决此问题。此问题在真实设备上发生,因为JS捆绑包位于开发系统上,并且真实设备内的应用程序不知道它的位置。

评论


直接从android studio运行时出现此问题。使用react-native run-android修复它

–yairsz
17年8月30日在19:22

您的链接不再起作用,以后您应该参考关键的有用部分,以便在信息源消失后使信息保持活动状态。

– Zac Grierson
18年1月9日,0:40

那么如何在真实设备上运行它呢?

– IgorGanapolsky
18年1月11日在15:53

@IgorGanapolsky我有相同的问题,并已通过官方文档进行了修复,您可以轻松检查您的环境facebook.github.io/react-native/docs/running-on-device.html我无法从android studio加载porj android文件夹),但我可以使用项目和终端的根文件夹进行操作。

–伊万·蒂特科夫(Ivan Titkov)
18年1月18日在9:13

顺便说一句,答案中给出的链接已过期.. Fyi。

– Jay Rathod RJ
10月29日12:34

#8 楼

在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。希望它对处于开发阶段的人有所帮助。

评论


您可以打开Emulator Emulator的哪些数据?哪里是?虚拟设备?真实的设备?

–绿色
18年5月24日在10:23

仿真器是指来自android studio的虚拟设备。

– Srinivas
18年5月31日在8:45

#9 楼

我已经有相同的问题几个月了。我最初使用@Jerry的解决方案,但这是一个错误的解决方案,因为它不能完全解决问题。相反,它所做的就是将每个构建都作为生产构建,这意味着您对应用程序进行的任何细微更改都意味着必须重新构建整个应用程序。从长远来看,这太可怕了,因为您不再能够使用React Native的惊人开发工具,例如热重装等。 MainApplication.java文件,替换以下内容:

@Override
public boolean getUseDeveloperSupport() {
    return BuildConfig.DEBUG;
}




@Override
public boolean getUseDeveloperSupport() {
    return true;
}


由于某种原因BuildConfig.DEBUG总是返回false并在资产目录中生成了一个捆绑文件。

通过手动将其设置为true,您将强制应用程序使用打包程序。这将无法在生产环境中使用,因此请务必将其更改为false或默认值。

评论


天哪,这是实际的解决方案。接受的答案不适用于热重装,绝不是对该问题的合法解决方案。

–甘内什·达塔(Ganesh Datta)
18年11月23日在3:29

这应该是答案!整夜都在努力解决这个问题,但没有运气。谢谢,杰西!顺便说一句,BuildConfig.DEBUG值实际存储在哪里?

–Jeaf Gilbert
10月27日22:09

也许这是原因:stackoverflow.com/questions/36350932/…

–Jeaf Gilbert
10月27日22:17

#10 楼

1转到项目目录并检查此文件夹是否存在android/app/src/main/assets如果存在,则删除两个文件,即index.android.bundleindex.android.bundle.meta


2.在根项目目录中执行

cd android && ./gradlew clean


3.最后,导航到根目录并检查是否只有一个名为index.js的单个条目文件


如果只有一个文件(即index.js),请运行以下命令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和index.ios.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


现在运行react-native run-android





评论


在尝试了几乎所有这些情况之后……这是唯一对我有用的解决方案。谢谢!!!!

– MizAkita
19-09-21在12:47

在Ubuntu 18.04入门指南中遇到此错误后,这对我有用。谢谢!

–user1243584
19-10-30在18:59

#11 楼

操作系统:Windows

尝试上述两种方法后,另一种解决此问题的方法
(因为我未在默认位置安装SDK,例如C:\ users \“ user_name” \ appdata \ local \ sdk )

如果您注意到命令行已宣布:“'adb'不被识别为内部或外部命令...”

所以这是我的解决方法:
示例:我在D:\ Android \ sdk中安装了SDK,因此我将在系统变量中再插入两行:

D:\Android\sdk\tools  
D:\Android\sdk\platform-tools  


如果您不知道如何编辑路径系统变量,请使用以下主题:https://android.stackexchange.com/questions/38321/what-do-i-type-in​​-path-variable-for-adb-server -to-start-from-cmd / 38324)

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

对我有用。

评论


即使它没有真正连接-这是非常常见的问题之一,并且正如Thien所述

–像素艺术家
17年10月1日在20:31

#12 楼

就我而言,我从MainApplication.java中删除了下面的行。 (以前是我误加的。):-


导入com.facebook.react.BuildConfig;


之后执行Clean Project和命中命令


react-native run-android


评论


谢谢,它也对我有帮助。

– Anil Ravsaheb Ghodake
19年1月21日,12:30

#13 楼

对于IOS:

在终端中:

cd ios


使用以下命令删除构建文件夹:rm -r build

再次运行: react-native run-ios

或者,您可以打开Finder,导航到YOUR_PROJECT / ios并删除构建文件夹。

然后再次运行:react-native run-ios

对于ANDROID:

在终端中:

cd android/app


使用以下命令删除构建文件夹:rm -r build

再次运行:react-native run-android

或者,您可以打开Finder,导航到YOUR_PROJECT / android / app并删除构建文件夹。

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

评论


适用于Android!干净又简单!

–更好
18年6月27日在14:06

在Windows上删除android / app / bin文件夹也可以。我直接从Android Studio构建了该项目,而不是运行react-native run-android,而且它似乎构建了一些错误,我必须手动删除。

–卢卡斯·布斯塔曼特(Lucas Bustamante)
19年2月10日在19:31

#14 楼

对于这个问题,我只需在命令行上运行以下命令即可解决:

然后我可以运行:

react-native start


这样我就不会浪费我的时间来运行:

adb reverse tcp:8081 tcp:8081


每次。

#15 楼

我也面临这个问题,因为当我在模拟器上运行项目时,它可以正常工作,但在真实设备上会出现此错误。因此,我可以通过以下解决方案来解决此问题

第一步:首先打开cmd,然后转到SDK管理器Platform-tools文件夹

cd C:Development\Android\Sdk\Platform-tools


第二步:现在运行此命令:

adb devices


此命令后,检查命令提示符中列出的设备

第三步:现在运行这

adb reverse tcp:8081 tcp:8081


现在完成设置

第四步:转到项目目录并运行此命令

react-native run-android


#16 楼


Ubuntu


第一次,我使用react-native init project-name创建了新应用。
我遇到了相同的错误。
所以我执行以下步骤来解决此问题在我的情况下。


首先在我的情况下运行sudo chown user-name-of-pc /dev/kvm
从Android手机调试时,选择Use USB to Transfer photos (PTP)。 / app / src / main
确保assets可用于您的项目index.js目录,然后在root目录之后从控制台运行以下命令。 />

用于index.android.js然后


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/resreact-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目录中。它将打开Android Studio。
运行命令./studio.sh



#17 楼

确保Metro Builder正在运行以使您的物理设备和服务器同步

首先,运行此命令以运行Metro Builder


npm start


然后可以在react native中开始构建


react-native run-android


它们应该不是这次出错。如果您希望您的代码是实时的,请在更改时重新加载。摇动设备,然后点击启用实时重新加载

#18 楼

确保已将/ path / to / sdk / platform-tools添加到您的路径变量中。 tcp:命令将请求从设备转发到计算机上本地运行的服务器。
如果未找到adb,将会看到类似的内容。

/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 }


评论


这应该是最合适的答案,这应该是首先要检查的内容之一

–eis
18年8月20日在8:52

#19 楼

例如,当您重命名项目应用程序/捆绑ID或添加未正确链接的外部包时,它可能是由R​​eact Native项目代码库中未链接的资产引起的。

只需尝试一下您的项目根目录:

react-native link

react-native run-android


#20 楼

如果在运行react-native run-android命令时跟踪的第二行是

JS server not recognized, continuing with build...


,则表示该应用程序的打包程序无法启动,并且如果不执行一些额外步骤,该应用程序将无法加载。请注意,跟踪的末尾仍报告成功: )。该问题的另一种表现是无法在Chrome中打开http://localhost:8081/debugger-ui URL。

解决端口冲突后,跟踪将报告

BUILD SUCCESSFUL


,然后将打开一个附加的Node窗口(node ...cli.js start)并加载应用/ reload成功。

之后,您应该可以使用http://localhost:8081/debugger-ui在Chrome中打开调试控制台。

#21 楼

即使在模拟器上运行,我也遇到同样的问题。我做了一个快速的变通办法,以便可以拥有正常的开发工作流程。 >

#22 楼

我的Mac阻止端口8081上的McAfee出现问题,必须将其更改为8082。

首先运行您的程序包服务器:打开另一个终端,像往常一样启动android应用:

react-native start --port 8082


完成后,现在重写adb隧道的tcp端口:

react-native run-android


请参见adb tcp隧道列表:

adb reverse tcp:8081 tcp:8082


您现在应该看到令人心动的消息:

转到您的应用并重新加载完成!

PS:不要在应用开发设置中进行任何更改,如果您添加了“ localhost:8082”,则将其删除,将其留空。

编辑:
对于所有的McAfee受害者,如果您具有root用户访问权限,则有一个更简单的解决方案,只需暂时终止位于端口8081上的McAfee进程即可,完全更改端口:

adb reverse --list


#23 楼

我认为您没有安装纱线,请尝试将其与巧克力味或类似物质一起安装。应该在创建项目之前安装它(react-native init命令)。

无需创建资产目录。

如果不起作用,请回复。

编辑:
他们在最新版本的react-native中已对其进行了修复。如果要从此节点获得完全的自由,只需卸载节点(有关完全卸载的操作,请完全参考此链接)并重新安装节点,然后react-native-cli然后创建新项目。

#24 楼

不要忘记在模拟器设备中打开Internet,
我解决了这个错误,它可以完美运行:V
我收到此错误是因为我关闭了Internet来测试NetInfo:D

#25 楼

这是一般错误消息,您在React Native应用程序开发过程中可能会遇到。因此,在本教程中,我们将提供解决此问题的方法。

问题描述:
无法从Windows上的资产index.android.bundle加载脚本
无法加载脚本从Windows上的资产index.android.bundle中获取

按照以下步骤解决上述问题:

步骤1:在项目目录中创建“资产”文件夹
现在在项目目录“ MobileApp \ android \ app \ src \ main”中创建资产文件夹。您可以手动创建资产文件夹:

<或>

也可以使用命令创建文件夹。
命令:
mkdir android / app / src / main / assets

第2步:运行React Native应用程序
让运行以下命令在模拟器或物理设备中运行React Native应用程序。

切换到项目目录。
cd MobileApp

运行以下命令,以帮助您捆绑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



可以将最后两个命令合二为一,在这种情况下,您只需执行一次命令。
s --bundle-输出android / app / src / main / assets / index.android.bundle --assets-dest android / app / src / main / res && react-native run-android



您可以通过将上述步骤放入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“

如果一切设置正确,您应该很快就会看到新应用在Android模拟器中运行。

#26 楼

遵循此,为我工作。

https://github.com/react-community/lottie-react-native/issues/269

转到您的项目目录并检查此文件夹是否存在android / app / src / main / assets
i)如果存在,则删除两个文件,即index.android.bundle和index.android.bundle.meta
ii)如果该文件夹资产不存在,然后在此处创建资产目录。

从您的根项目目录执行
cd android && ./gradlew clean

最后,导航回根目录并检查是否存在一个名为index.js的单个条目文件。i)如果只有一个文件(即index.js),则运行以下命令
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

ii)如果有两个文件,即index.android.js和index.ios.js,则运行此
现在运行react -native run-android

评论


您的评论极大地帮助了我。我不确定为什么需要删除两个捆绑文件。但是您的指示将完美!非常感谢!

– VK1
18年9月9日在6:52

#27 楼

我刚刚遇到了完全相同的问题并解决了。因此希望对您有所帮助。

假设您正在组装发布应用程序包(.apk)


检查资产文件夹是否存在?:\ android \ app \ src \ main \ assets
,如果没有,则创建一个。

执行“ Assemble Release”后,检查该文件夹中是否有任何内容(\ android \ app \ src \ main \ assets )
如果没有,请找到js捆绑文件(index.android.bundle),该文件应位于以下路径之一以上:

* a)\ android \ app \ build \中间体\ merged_assets \ release \ out \ index.android.bundle

b)\ android \ app \ build \ intermediates \ merged_assets \ release \ mergeReleaseAssets \ out \ index.android.bundle

c)\android\app\build\intermediates\assets\release\index.android.bundle



更好的方法是使用“所有内容”搜索文件名:index.android.bundle。


然后将此文件复制到资产文件夹中(\ android \ app \ src \ main \ assets \ index.android.bundle)
回到powershell或命令控制台,执行:


react-native run-android --variant = release


就可以了。

祝你好运!

评论


非常感谢你!奋斗了三天!顺便说一句本机0.59解决了该问题。

–安妮
19年5月5日在14:41

#28 楼

当我将react-native更新到0.49.5时,出现此问题,并且当我遵循此突破性更改和弃用时,它消失了。

#29 楼



我正面临这个问题,经过大量搜索,我已经解决了该问题。 >
c:\ProjectFolder\ProjectName> 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

评论


屏幕截图与答案无关。

–泰勒
18年4月23日在19:47

就我而言,这是有问题的,我的本机应用程序无法正常工作。更准确地说,我在android的模拟器屏幕上得到了相同的显示。我刚刚在根文件夹的下一个代码“ main”:“ index.js”的package.json中输入了起点,然后启动了应用程序。可能命令react-native init遇到了一些问题,并且没有添加此代码,并且在您启动时,应用程序不知道从哪里开始。我希望得到你我的一点帮助

– Miodrag Trajanovic
12月18日20:14

#30 楼

对于所有正在使用create-react-native-app开发并退出并在development中遇到此问题的人,
这对我来说是有效的
从接受的答案中获取一些细节


(在项目目录中)mkdir android / app / src / main / assets


这里有改变您在开发中的cos的部分摆脱--dev: false部分:


react-native捆绑软件--platform android --entry-file
index.js --bundle-output
android / app /src/main/assets/index.android.bundle --assets-dest
android / app / src / main / res


关闭所有终端后,清除从android / app /构建文件夹,以确保您从头开始构建应用程序,打开新终端,然后在项目目录中


npm运行android


将提示打包程序控制台(在另一个终端中)并成功构建