Androidエミュレーターで反応ネイティブアプリを実行しようとしていますが、次のようなエラーが表示されます。
Appregistry.runApplicationの呼び出しエラー
AVD: 'Nexus_5X_API_23(AVD)-6.0 OS:Windows 10
これで助けてください?
最後に、私はそれを機能させました。新しいAVDを作成しました
Nexus6 API 23
以前はNexus5x API 2で試していました。すべてありがとう
数日前にあなたが現在抱えているほとんど同じ問題がありました。私にとっては、実際のデバイスでした。
私のすべての研究から、私のために働いた解決策は次のとおりです:
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
コマンドが自動的に実行されます。
これがさらに役立つことを願っています!
私は同じ問題を抱えていました、私の修正は実行することでした
$ react-native start
バックグラウンドで実行します
$ react-native run-Android
私によると、このエラーは次の場合に発生します。
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.js
とindex.ios.js
の何が問題なのか見てみましょう
乾杯:)
同じ問題がありました。 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
私の場合(もちろん、ここや他の場所で見つけることができるすべてのものを調べた後)、携帯電話でWiFiをオフにしたことに気付きました...そのようには動作しません!それが誰かを助けることを願っています
ポート8081が使用可能であることを確認してください。私の場合、私のサービスの1つはポート8081(Tomcat Webサーバー)で実行されています。
同じ問題があり、Androidエミュレーターでローカルコンピューターをデバッグサーバーとして設定することで解決できました。 Androidエミュレーター、Command + M
を開いてメニューを表示し、[Dev Settings]をクリックしてから[Debug server Host and port]をクリックして127.0.0.1:8081に設定します。次に、プロジェクトディレクトリ内からreact-native run-Android
を実行します。これがお役に立てば幸いです。
私にとっては、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
を実行すると動作しました!
私はまったく同じ問題を抱えていました(これは非常に一般的なメッセージだからです)が、問題は異なっていました。私の場合、それは新しく作成されたプロジェクトで、エミュレータは機能していませんでしたが、実際のデバイスは機能していました。
私の問題は、デフォルトで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
この質問には非常に多くの回答が寄せられていますが、ソリューションを追加する価値があると思います。
私の場合、問題は仮想マシンにありましたが、調査しませんでしたが、新しい仮想デバイスを作成することで、アプリは問題なくスムーズに実行されました。
したがって、新しい仮想デバイスを作成するだけです。 :)