2017-05-02 39 views

回答

1

最后,我得到了它working.I创造了一个新的AVD

Nexus6 API 23

.Earlier我与Nexus5x API 23个 .Thanks所有

+0

我有与Nexus6 API 23相同的问题,我已经修复它像这样 –

16

根据我这个错误出现时:

1)你没有运行在正确的地方即打包,你找错了文件夹,运行反应本地打包所以只要浏览到您的项目目录并运行react-native start

2)当你对Appregistry模块编写错误的代码时。 3)关闭所有Xcode,打包机,模拟器等,并重新启动它。

4)从我脑海中错误的一件事罢工是模块

AppRegistry.registerComponent('AppName',() => componentName) 

matches with the @"AppName" on your AppDelegate.m on the call for 

[[RCTRootView alloc] initWithBundleUrl:... 
          moduleName:@"AppName" 
         launchOptions:... 

5)的名字作为我们使用,所以我们需要给我们的类名与帽的第一个字符反应的成分上。

6)让我们来看看在index.android.jsindex.ios.js

干杯:)

+5

“react-native start”适合我,谢谢。 – Giancarlos

+0

@Codesingh谢谢你的答复。我检查了一切,因为你的意见。但它不工作,我得到同样的错误。我的index.android.js文件是https://gist.github。com/GopeshMedayil/eab9ba6c3b31c3798eb083b0cb0ccc93 – Gopesh

+1

你的班级名称不是以大写字母开头,所以要使它正确可能会工作.. – Codesingh

1

是错的我有同样的问题,并能够通过设置我的本地计算机中的Android模拟器调试服务器来解决它。打开android模拟器Command + M调出一个菜单,然后点击“开发设置”,然后点击“调试服务器主机和端口”并将其设置为127.0.0.1:8081。然后从你的项目目录运行react-native run-android。我希望这有帮助。

31

我几乎有同样的问题,你目前几天前。对我来说这是一个真正的设备。

从我的研究,为我工作的解决方案是:

当你键入react-native run-android启动您的应用程序时,会出现错误。

所以,达到你含 “adb.exe” 目录(对我来说是C:\ Users \用户名\ AppData \本地\ Android的\ SDK \平台工具\)

从这里打开一个终端。并输入adb reverse tcp:8081 tcp:8081

然后,通过在手机上重新加载应用程序,它应该工作。

我希望这会帮助你!(如果没有,可耻的是我)

干杯;)

编辑:

我已经找到一个更方便的解决方案来解决这个问题。

当您启动“反应原生运行Android的”你可能有一个评论说:“亚行不被识别为内部或外部命令......”

好,而不是使用ADB命令手动,您可以添加通往adb.exe的环境变量。

只需进入“控制面板”>“系统和安全”>“系统”>“高级系统设置”。

从这里点击“环境变量”。在“系统变量”部分搜索“路径”变量。点击它并按下“编辑”按钮。

在那里你可以添加一个新的路径到这个变量。只需点击“新建”按钮并写入adb.exe路径。例如C:\ Users \ username \ AppData \ Local \ Android \ Sdk \ platform-tools \

(对于最老版本的Windows,您必须添加“; C:\ Users \ username \ AppData \ Local \ Android \ Sdk \ platform-tools \“)。

这就是它,现在adb reverse tcp:8081 tcp:8081命令将在构建时自动运行。

希望这会更帮助你!

+0

我试图在模拟器中运行应用程序 – Gopesh

+0

是的,但因为它似乎是相同的错误,它可能是相同的解决方案。 – Swainge

+3

我已经尝试过,但没有使用 – Gopesh

2

我想有同样的问题。发生这种情况的原因是McAffee在端口8081上,并封锁了打包程序。 我的解决方案:

react-native start --port your_port 

在Android模拟器,命令+ M显示开发菜单,点击“开发设置”,然后单击“调试服务器主机和端口”,并设置它your_ip:your_port。

然后

react-native run-android 
0

我有完全相同的问题(因为这是一个非常通用的消息),但问题是不同的。在我的情况下,这是一个新创建的项目,模拟器没有工作,但真正的设备确实工作。

我的问题是观察者的限制inotify默认情况下可以在Linux上处理,这是一个Linux内核子系统,用于扩展文件系统以注意对文件系统的更改,并将这些更改报告给应用程序并广泛使用,包括Android工作室和反应原生;当我试图执行react-native run-android时,所有观察者都被分配到我的系统上,导致进程在此消息上失败。

要改变观察者的最大数量的inotify可以处理,你需要编辑文件sysctl.conf,这将通常位于/etc/sysctl.conf/etc/sysctl.d/custom_name.conf,并添加以下行:

fs.inotify.max_user_watches = 5242881 

写你的文件后需要执行sysctl -p filename.conf其中'filename.conf'是保存sysctl的.conf文件的路径和名称。应用更改后,所有内容都应按预期工作。

20

我有同样的问题,我的修补程序是在后台运行

$ react-native start 

然后运行

$ react-native run-android 
+0

问题仍然没有解决这个方法。 –

+1

它适合我。我使用的是Ubuntu 16.04。我在终端运行start命令,在另一个终端运行run-android。 –

+0

我的问题解决了。完美运作。在终端运行命令的一个标签中:react-native start和其他标签运行命令:react-native run-android –

0

我也有同样的问题。我解决了在真实设备上运行的问题。

至于说绝地先生,MCAFFEE阻塞端口8081。所以我已经修改项目,文件夹> \ node_modules \反应母语\本地CLI \ runAndroid \ runAndroid.js文件的功能从

function tryRunAdbReverse(device) { 
    try { 
    const adbPath = getAdbPath(); 
    const adbArgs = ['reverse', 'tcp:8081', 'tcp:8081']; 

function tryRunAdbReverse(device) { 
    try { 
    const adbPath = getAdbPath(); 
    const adbArgs = ['reverse', 'tcp:8081', 'tcp:3040']; 

并开始

 react-native start --port 3040 
+0

通过更改端口仍然没有解决问题。 –

1

应用确保端口8081可用。在我的情况下,我的一个服务正在端口8081(tomcat webserver)上运行。

0

对我来说,我只需要将平台工具添加到我的Path环境变量中,以便react-native可以启动adb服务器。

我得到:

'adb' is not recognized as an internal tool or program 

为了解决这个问题,我添加下面我Path环境变量。

C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools 

然后运行react-native run-android工作!

0

我知道这个问题已经给了这么多答案,但是,我认为值得添加我的解决方案,希望这可以帮助那里的人。

在我的情况下,问题来自我的虚拟机,虽然我没有调查,但通过创建一个新的虚拟设备,应用程序顺利运行没有问题。

因此,只需创建一个新的虚拟设备。 :)

1

在我的情况下(之后,当然,经历了我可以在这里和其他地方找到的所有东西),我意识到我已经在手机上关闭了我的WiFi ......不能这样工作!希望它可以帮助别人