ここで何が起こっているのか本当にわかりません。基本的なアプリをセットアップし、コードシェアリング方式 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',
}
});
スタックトレース:
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も再起動しませんでした。
Android Studioからアプリを実行している場合、reactプロジェクトのフォルダーからreact-native start
を使用して、コマンドラインからreact-nativeパッケージャーを起動する必要があります。
Android adb reverse tcp:8081 tcp:8081
を使用したポート転送も設定する必要があります。
あなたはそれらをしましたか?
の正しいパスを設定したとき、それは私を助けました
Android_HOME = C:\Users\username\AppData\Local\Android\sdk
とツール:
%Android_HOME%\build-tools
%Android_HOME%\platform-tools
%Android_HOME%\tools
Genymotionエミュレータで2番目のReact Nativeプロジェクトを実行すると、最近同じ問題が発生しました。次のエラーが表示されて赤い画面が表示されました。
AppRegistry.runApplicationの呼び出しエラー
ただし、私の場合、最初に追加したため、これらの環境変数が存在しないことが原因ではありません。また、adb reverse tcp:8081 tcp:8081
コマンドも機能しません。私はインターネットで見つけることができるほとんどすべてのソリューションを試しましたが、どれもうまくいきませんでした。
私の場合、ソリューションは以下に示すようにデバッグサーバーのホストとポートに設定されています。
CTRL + M
を押して、設定のオーバーレイを開きます
「Dev Settings」をクリックして、設定メニューに移動します
「デバイスのデバッグサーバーホストとポート」をクリックし、ポップアップにlocalhost:8081
と入力します
そして今、あなたはそれをリロードすることができます、それは働き始めるはずです。
このソリューションが一部の人々を助けることを願っています。
背景:
実際、Windows 7 Proで開発環境をセットアップした後、最初のReactネイティブアプリを実行すると、次のエラーが表示されました。
アセット「index.Android.bundle」からスクリプトを読み込めません。バンドルが正しくパッケージ化されていること、またはパッケージサーバーを実行していることを確認してください。
この問題を解決するために、[デバッグサーバー]オプションをlocalhost:8081に設定しました。この設定が仮想デバイスでグローバルに有効になると期待していました。しかし、アプリケーションごとに機能しているようです。つまり、新しいReactネイティブプロジェクトでは、何度も何度も設定する必要があります。
また、Windows 10 Homeで環境をセットアップしました(Windows 7 Proで行ったのとまったく同じ手順に従います)。デバッグサーバーオプションを設定する必要はありません。このようなエラーは発生せず、React何も設定しないネイティブプロジェクト。
同様の問題がありました。デバイスで実行しようとすると、このエラーが発生します。コンピューターのシミュレーターでは問題なく動作していました。
問題は、私がやるときでした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はコンピューターのユーザー名です。
そこで、システム環境変数に移動し、「パス」を見つけて「編集」をクリックし、「新規」をクリックして、「C:\ Users\Mercurius\AppData\Local\Android\sdk\platform-tools」に追加しました。ここにスクリーンショットがあります: