web-dev-qa-db-ja.com

反応ネイティブでAppregistry.runApplicationの呼び出しエラー

Androidエミュレーターで反応ネイティブアプリを実行しようとしていますが、次のようなエラーが表示されます。

Appregistry.runApplicationの呼び出しエラー

AVD: 'Nexus_5X_API_23(AVD)-6.0 OS:Windows 10

enter image description here

これで助けてください?

47
Gopesh

最後に、私はそれを機能させました。新しいAVDを作成しました

Nexus6 API 23

以前はNexus5x API 2で試していました。すべてありがとう

1
Gopesh

数日前にあなたが現在抱えているほとんど同じ問題がありました。私にとっては、実際のデバイスでした。

私のすべての研究から、私のために働いた解決策は次のとおりです:

react-native run-Androidと入力してアプリを起動すると、エラーが表示されます。

したがって、「adb.exe」を含むディレクトリにアクセスします(私にとってはC:\ Users\username\AppData\Local\Android\Sdk\platform-tools \でした)

ここからターミナルを開きます。 adb reverse tcp:8081 tcp:8081と入力します

その後、電話でアプリをリロードすることで、動作するはずです。

これがお役に立てば幸いです!! (そうでない場合、私に恥をかく)

乾杯;)

編集:

この問題を解決するためのより便利な解決策を見つけました。

「react-native run-Android」を起動すると、「adbは内部コマンドまたは外部コマンドとして認識されません...」というコメントが表示される場合があります。

まあ、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コマンドが自動的に実行されます。

これがさらに役立つことを願っています!

35
Swainge

私は同じ問題を抱えていました、私の修正は実行することでした

$ react-native start

バックグラウンドで実行します

$ react-native run-Android
24
dudasaus

私によると、このエラーは次の場合に発生します。

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)reactのコンポーネントを使用しているので、キャップを付けたクラス名の最初の文字を与える必要があります。

6)index.Android.jsindex.ios.jsの何が問題なのか見てみましょう

乾杯:)

17
Codesingh

同じ問題がありました。 McAffeeがポート8081およびブロックパッケージャーにあったことが発生します。私の解決策:

react-native start --port your_port

Androidエミュレーターで、Command + M devメニューを表示し、[Dev Settings]をクリックしてから[Debug server Host and port]をクリックして、your_ip:your_portに設定します。

それから

react-native run-Android
2
Mr Jedi

私の場合(もちろん、ここや他の場所で見つけることができるすべてのものを調べた後)、携帯電話でWiFiをオフにしたことに気付きました...そのようには動作しません!それが誰かを助けることを願っています

2
kwishnu

ポート8081が使用可能であることを確認してください。私の場合、私のサービスの1つはポート8081(Tomcat Webサーバー)で実行されています。

1
Vino

同じ問題があり、Androidエミュレーターでローカルコンピューターをデバッグサーバーとして設定することで解決できました。 Androidエミュレーター、Command + Mを開いてメニューを表示し、[Dev Settings]をクリックしてから[Debug server Host and port]をクリックして127.0.0.1:8081に設定します。次に、プロジェクトディレクトリ内からreact-native run-Androidを実行します。これがお役に立てば幸いです。

1
sjc42002

私にとっては、react-nativeがadbサーバーを起動できるように、Path環境変数にプラットフォームツールを追加する必要がありました。

私が得ていた:

'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
Chase

私はまったく同じ問題を抱えていました(これは非常に一般的なメッセージだからです)が、問題は異なっていました。私の場合、それは新しく作成されたプロジェクトで、エミュレータは機能していませんでしたが、実際のデバイスは機能していました。

私の問題は、デフォルトでLinuxで処理できるウォッチャーの制限inotifyでした。これは、ファイルシステムの変更を通知するためにファイルシステムを拡張し、それらの変更をアプリケーションに報告し、広く使用されている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ファイルを保存した場所のパスと名前です。変更が適用されると、すべてが期待どおりに機能するはずです。

私も同じ問題を抱えていました。実際のデバイスで実行する問題を解決しました。

Jedi氏によると、McAffeeはポート8081をブロックしました。そのため、Project-Folder>\node_modules\react-native\local-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
Ramesh K

この質問には非常に多くの回答が寄せられていますが、ソリューションを追加する価値があると思います。

私の場合、問題は仮想マシンにありましたが、調査しませんでしたが、新しい仮想デバイスを作成することで、アプリは問題なくスムーズに実行されました。

したがって、新しい仮想デバイスを作成するだけです。 :)

0
Daniel Barde