web-dev-qa-db-ja.com

「React Native Run Android」は、エミュレーターでアプリを起動した直後に停止します

Android=アプリケーションをテストしようとしていますが、デバイスで起動した後、react-native run-Androidコマンドで起動すると、エラーなしで中間停止します。

私はこれを得た:

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html
Running adb -s emulator-5556 reverse tcp:8081 tcp:8081
Starting the app on emulator-5556 (adb -s emulator-5556 Shell am start -n com.app/.MainActivity)...
Starting: Intent { cmp=com.app/.MainActivity }

プロンプトに戻った後、常にではありませんが、試してみると、正常に実行される場合がありますが、これを10〜15回実行する必要があります。 SDKのバージョンは25で、React Native Getting Started installation guide)に従いました。

  • OS:Fedora 24
  • 反応ネイティブ:0.42.0

更新:

react-native startを試してみたところ、Loading dependency graph... ERROR Packager can't listen on port 8081と表示されましたが、前のコマンドで表示されなかった理由がわかりません。この場合、--port 9000を使用してポートを変更できますが、react-native run-Androidコマンドで他のフラグを見つけることができませんでした。

更新2:

リモートデバッガーがデバイスでオンになり、:8081ポートでリモートデバッガーに接続されており、adbが:8081を介してモバイルアプリケーション用の新しいサーバーをしばらくの間作成していたため、問題が発生したようですはまだ:8081ポートを使用しているため、新しいポートを作成することはできませんでした。リモートデバッガをオフにしたところ、問題なく実行されています。それが問題だった可能性があるかどうかはわかりません。

12
PumpkinSeed

私がubuntuで同じ問題を抱えていましたが、うまくいったのは、端末を閉じたところ、再起動されたUSBからデバイスが削除されたことです。まず、packages.json内にこれらの行を追加することをお勧めします。

"scripts": {
"prepare-repository": "npm i -g react-native-cli yarn;yarn install; react- native link",
"emulator": "emulator -avd Nexus5V6L23_x86_64 -scale 1.0",
"install": "react-native run-Android",
"start": "react-native start --reset-cache",
"Android": "npm run install && npm run start",
"clean": "watchman watch-del-all && npm cache clean && cd Android && ./gradlew clean && cd ..",
"test": "jest"
}

その後、それを保存し、プロジェクトを作成したフォルダーに移動します。私の家/ワークスペース/デモとしましょう。その実行スクリプトの内部

 npm run clean //this will clear all cache

その後

npm run Android 

デバイスとスタートリセットキャッシュでアプリを実行します。それが役立つかどうか教えてください。

時々追加

adb reverse tcp:8081

npmを実行する前にrun Androidトリックを実行します。Gradleデーモンを有効にすることをお勧めします。これにより、ビルドがより高速になります。それを有効にするには、Android-> gradle.propertiesに移動し、そのファイル内に書き込みます

org.gradle.daemon=true
9
Nitesh Mishra

私は同じ問題を抱えていて、問題はここに記載されています すでに使用されているポート 。したがって、ポートを占有しているプロセスを強制終了します。

Sudo lsof -i :8081

kill -9 <PID>

3
Bardolf

私の場合、キャッシュを消去するだけで役に立ちました:

npm cache clean --force  
.Android/gradlew clean
0
Footniko

エラーがまったくなく、ビルドが成功した私の場合、ビルドとアプリがクラッシュした後、ビルダーが終了していました。

ここであなたはそれを解決します、それが終了した後、単にタイプしてください

yarn start

あなたの反応ネイティブは稼働しているはずです。

それが役に立てば幸い。

0
Kailash Bhalaki