我真的不知道这里发生了什么。 我已经设置了一个基本应用,并使用了here找到的代码共享方法。 这一切都非常基础,所以这是代码:
// index.android.js
// index.ios.js
import React, { AppRegistry } from 'react-native';
import CompetitionAgent from './app/index';
AppRegistry.registerComponent('CompetitionAgent', () => CompetitionAgent);
组件:
//./app/index.js
import React, { Component } from 'react';
import {
StyleSheet,
Text,
TextInput,
View
} from 'react-native';
export default class CompetitionAgent extends Component {
constructor() {
super();
this.state = {nickname:''};
}
render() {
return (
<View style={styles.container}>
<View style={styles.information}>
<Text style={styles.welcome}>
Welcome to the Competition Agent Connect app!
</Text>
<Text style={styles.instructions}>
When you are near a Competition Agent, you can join the session.
</Text>
</View>
<View style={{padding:10}}>
<TextInput style={styles.inputStyle} />
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
},
information: {
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
inputStyle: {
flexDirection: 'row',
backgroundColor: '#3E3134',
color: '#FFFFFF',
}
});
我知道错误可能很多。所以这个基本布局产生了同样的错误。
import React, { Component } from 'react';
import {
StyleSheet,
Text,
TextInput,
View
} from 'react-native';
export default class CompetitionAgent extends Component {
constructor() {
super();
this.state = {nickname:''};
}
render() {
return (
<View style={styles.container}>
<Text style={styles.information}>
Welcome to the Competition Agent Connect app!
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
},
information: {
alignItems: 'center',
backgroundColor: '#F5FCFF',
}
});
stacktrace:
E/unknown:React: Exception in native call
java.lang.RuntimeException: Error calling AppRegistry.runApplication
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:158)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:208)
at java.lang.Thread.run(Thread.java:818)
Caused by: com.facebook.jni.CppException: Could not get BatchedBridge, make sure your bundle is packaged correctly
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:158)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:208)
at java.lang.Thread.run(Thread.java:818)
昨天运行得很好,重启Android Studio也无济于事。
答案 0 :(得分:19)
如果您是从Android Studio运行应用程序,那么您必须使用您的react项目文件夹中的react-native start
从命令行启动react-native packager。
您还必须使用adb reverse tcp:8081 tcp:8081
设置Android端口转发。
你做过那些吗?
答案 1 :(得分:5)
当我为
设置正确的路径时,它帮助了我ANDROID_HOME = C:\Users\username\AppData\Local\Android\sdk
和工具:
%ANDROID_HOME%\build-tools
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
答案 2 :(得分:2)
我最近在Genymotion模拟器中运行第二个React Native项目时遇到了同样的问题,我得到了一个错误的红色屏幕:
调用AppRegistry.runApplication
时出错
但是,在我的情况下,它不是由于缺少这些环境变量引起的,因为我在一开始就添加了它们。并且adb reverse tcp:8081 tcp:8081
命令对我也不起作用。我尝试了几乎所有可以在互联网上找到的解决方案,但都没有。
就我而言,解决方案是设置Debug Server主机&amp;端口,如下所示:
按CTRL + M
,打开设置
点击“开发设置”,进入设置菜单
点击'Debug Server host&amp; “设备端口”,并在弹出窗口中输入localhost:8081
现在你可以重新加载它,它应该开始工作。
希望这个解决方案可以帮助一些人。
<强>背景强>
实际上,在Windows 7 Pro上设置我的开发环境后,当我运行我的第一个React Native应用程序时,我收到一条错误消息:
无法从资产'index.android.bundle'加载脚本。确保 您的捆绑包已正确打包,或者您正在运行包 服务器
要解决这个问题,我将Debug Server选项设置为localhost:8081,我希望该设置将在虚拟设备上全局生效。但它似乎适用于每个应用程序,这意味着我必须反复为新的React Native项目设置它。
我还在Windows 10 Home上设置环境(遵循与在Windows 7 Pro上完全相同的程序),不用设置调试服务器选项,它不会给我这样的错误,我可以运行任何React Native项目没有设置任何东西。
答案 3 :(得分:1)
我有类似的问题。尝试让它在设备上运行时,我会收到此错误。它在我的计算机上的模拟器上工作正常。
问题在于我会adb devices
或react-native run-android
我会得到“ADB未被识别为内部或外部命令”。
所以我的修复方法是将adb.exe父目录的路径添加到我的环境变量中,然后重新启动命令提示符。在我这样做之后,adb devices
不会抛出“无法识别的内部外部错误”并且它列出了我的设备。然后我运行react-native run-android
并在启动时不再显示红屏,显示完全无用的错误消息Error calling AppRegistry.runApplication
! :)
所以我发现ADB位于我的文件夹中:
C:\Users\Noitidart\AppData\Local\Android\sdk\platform-tools\adb.exe
我在Windows 10系统上。 Noitidart是我的计算机用户名。
所以我转到System Environemnt Variables然后找到“Path”然后点击“Edit”,然后点击“New”并添加到“C:\ Users \ Mercurius \ AppData \ Local \ Android \ sdk \ platform-tools”中。这是截图: