react-native run-Android
コマンドは、Androidシミュレーターにメッセージを残して終了します。メッセージは次のとおりです。
「スクリプトをロードできません。Metroサーバーを実行しているか、バンドル「index.Android.bundle」がリリース用に正しくパッケージ化されていることを確認してください。」
私が間違っていることを完全に混乱させています。
編集:エラーのスクリーンショットの追加
バンドラーをまだ開始していません。実行npm start
またはreact-native start
プロジェクトのルートディレクトリのreact-native run-Android
。
これらの手順は本当に役立ちます:
ステップ1: Android/app/src/main/assetsにディレクトリを作成します
Linuxコマンド:mkdir Android/app/src/main/assets
ステップ2:名前の変更index.Android.js
(ルートディレクトリ内)からindex.js
(たぶんindex.js
ファイル。この場合、名前を変更する必要はありません)、次のコマンドを実行します。
react-native bundle --platform Android --dev false --entry-file index.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res
ステップ3: APKのビルド:react-native run-Android
最新バージョンではindex.jsを使用してください。
楽しい :)
私にとって、このエラーはreact-nativeのアップグレードが原因でした
Android 9.0(APIレベル28)以降、デフォルトではクリアテキストのサポートは無効になっています。
アップグレード差分をチェックアウトする場合は、デバッグマニフェストを作成する必要がありますAndroid/app/src/debug/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools">
<uses-permission Android:name="Android.permission.SYSTEM_ALERT_WINDOW"/>
<application Android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
</manifest>
詳細情報を参照してください: https://stackoverflow.com/a/50834600/1713216
最初にステップ4と5を実行して、プロジェクトを実行できます。
結果が得られない場合(ステップ4および5を使用)、以下のステップを実行します
1-= Nodeバージョン(現在のバージョンは12.13.1
)
choco uninstall nodejs
choco install nodejs --version 12.8
2- npmモジュールのパスを追加(C:\Users\your user name\AppData\Roaming\npm
)ユーザー変数の代わりにシステム変数に
-コマンドを使用してグローバルにネイティブに反応するインストール
npm install -g react-native-cli
4-プロジェクトディレクトリのルートに移動し、次のコマンドを実行します。
react-native start
5-プロジェクトのルートで別のターミナルを開き、次のコマンドを実行します。
react-native run-Android
編集:
Genymotionを使用していますか?はいの場合、次の手順を実行します:
上記の手順の後、次のエラーが表示される場合は?
error Failed to launch emulator. Reason: No emulators found as an output of `emulator -list-avds`.
Genymotionを開き、次の場所に移動します。
genymotionメニュー->設定-> ADB ->次に、カスタムの使用を選択Android sdk tools(クリック参照してSDKの場所を見つけます)
最後に、プロジェクトを再度実行します..
node_modules\metro-config\src\defaults\blacklist.jsに3つのスプラッシュを追加するだけです
この部品を交換してください:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
私と同様の問題が発生したようですマカフィーは8081ポートをブロックしているようです、これを理解するのに何時間もかかりました
react-native run-Android --port=1234
を実行してみてください
エミュレーターでアプリにエラーが表示されたら、dev設定に入ります(crtl + Mをクリックしてアクセス可能)
「デバイスのデバッグサーバーホストとポート」を「localhost:1234」に変更します。
アプリを閉じて、アプリの引き出しから起動します
これがあなたにも役立つことを願っています!!
以下を試すことができます:
AndroidManifest.xmlにこの行を追加します
<application
[...]
Android:usesCleartextTraffic="true"
/>
[...]
</application>
ワークスペースでこの問題を解決しようとした後、解決策を見つけました。
このエラーは、NPMとNodeバージョン。
次の2つの選択肢があります。
代替案2:このファイル:\node_modules\metro-config\src\defaults\blacklist.js
に移動して、このコードを変更します:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
そしてこれに変更します:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
npm install
またはyarn install
を実行する場合、コードを再度変更する必要があることに注意してください。
すべてが正しく構成されている場合は、これを試してください:
adb reverse tcp:8081 tcp:8081
どうして? 「RNパッケージャーの実行中、ブラウザでアクセス可能なアクティブなWebサーバーが127.0.0.1:8081にあります。アプリケーションのJSバンドルが変更されると、このサーバーから提供され、更新されます。リバースプロキシがなければ、お使いの携帯電話はそのアドレスに接続できません。」
Swingline へのすべてのクレジット
これは私のために働いたいくつかの方法を試した後。
ファイル内node_modules\metro-config\src\defaults\blacklist.js
置換:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
with:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
お役に立てれば。
答えを探して数時間後。解決策は、バージョン12.4へのダウングレードノードを作成することでした。
私の場合、バージョンリアクティブネイティブ0.60とノードバージョン12.6でエラーが発生することを認識しています。
これに対する私の解決策は次のとおりです:
Metroサーバーの起動
$ react-native start
Androidを起動します
$ react-native run-Android
「ポート8081が既に使用されています」というエラーが表示された場合、そのプロセスを強制終了して再実行できます。
$ react-native start
React Nativeトラブルシューティングページ を参照してください。
Android 9.0(APIレベル28)以降、デフォルトではクリアテキストのサポートは無効になっています。
これは、通常の実行コマンドを適切に行う場合にこの問題を取り除くために必要なことです
そして、Androidマニフェストファイルを次のように変更します。
<application
Android:name=".MainApplication"
Android:icon="@mipmap/ic_launcher"
Android:usesCleartextTraffic="true" // add this line with TRUE Value.
Android:theme="@style/AppTheme">
私は同じトラブルを抱えていました、私にとっての問題はadbが正しい環境パスにないことでした、エラーはメトロポートを告げています。
注:または、マシンのadb.exeの場所に応じて
実行Android再ビルド
$ react-native run-Android
または
$ react-native start
$ react-native run-Android
私もこの問題に直面しています。この次の手順を解決しました。
チェックAndroid 環境検証可能)のSDKパス
追加 Android_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
in システム変数
およびC:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
path in システム変数
sharedBlacklistの置き換え以下のコードセグメント、
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
in node_modules/metro-config/src/default/blacklist.js
次に、npx react-native run-Android --port 9001を実行します
ハッピーコーディング..!
以下を試してください。
たぶん、前の手順の後、npm start---reset-cacheを実行しています
私は働きます、それがあなたを助けることを望みます。
私のWifiがエミュレータで誤ってオフになったからといって、これを経験しました。それが誰かに役立つことを願っています
私にとってこの問題は、react-nativeのアップグレードから始まりました。 64ビットサポートを追加するには、アップグレードが必要でした。
Before:
--------
Environment:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
Xcode: Not Found
Android Studio: 3.4 AI-183.6156.11.34.5692245
Packages: (wanted => installed)
react: 16.0.0-alpha.12 => 16.0.0-alpha.12
react-native: ~0.55.2 => 0.55.4
react-native-cli: 2.0.1
After:
------
info
React Native Environment Info:
Binaries:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
SDKs:
Android SDK:
API Levels: 23, 26, 27, 28
Build Tools: 27.0.3, 28.0.3
System Images: Android-28 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5692245
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: ^16.8.6 => 16.9.0
react-native: 0.59.9 => 0.59.9
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
また、アップグレードのために行った重要な変更の1つは../Android/build/build.gradleでした。
Android {
...
defaultConfig {
...
targetSdkVersion 28
...
}
...
}
Build(.apk)をgooleプレイコンソールにアップロードしようとしたときに、警告に従ってtargetSdkVersionを27から28に変更する必要がありました。これが私にとって上記のエラーの根本的な原因であることに少しも気付きませんでした。 @tomと@tinmarfrutosによる即座の回答は、絶対的な意味を成していました。
Android:usesCleartextTraffic = "true"をAndroid/app/src/debug/AndroidManifest.xmlに追加して問題を解決しました
Linuxを使用している場合は、アプリのルートディレクトリからターミナルを開いて実行します
npm start
次に、別のターミナルウィンドウを開き、reactive-native run-aroundを実行します
重要-環境内に多数の仮想デバイスがある場合があります。 AVDを変更する場合は、設定を再度繰り返してください。
上記のエラーが発生した場合は、最初にポート8081で実行されているものを確認する必要があります
それを見つける最も簡単な方法は、ターミナルで次のコマンドを使用することです
netstat -aon | findstr 8081
それが何かを示している場合、ポートがブロックされていることを意味します。可能であれば、そのポートのブロックを解除してください。
それ以外の場合は、ポートを変更する必要があります。そのためのプロセスは、Naveen Kumarによる上記のコメントですでに言及されています。
react-native run-Android --port=9001
9001が使用されていないことも確認してください:)
このエラーの可能性も間違ったパスです、一度チェックしてください
export Android_HOME=/Users/microrentindia/Library/Android/sdk/
export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools
ここでは取り上げていない、明らかではない可能性を追加したいだけです。私は @ react-native-community/netinfo を使用して、ネットワークの変更(主にネットワークの状態)を検出しています。ネットワークオフ状態をテストするには、(エミュレータ上の)WIFIスイッチをオフにする必要があります。これにより、エミュレーターとデバッグ環境の間のブリッジも効果的に切断されます。私はコンピューターから離れていて、戻ったときにすぐにそれを忘れていたので、テスト後にWIFIを再度有効にしませんでした。
これは他の誰かにも当てはまる可能性があり、他の抜本的な手順を実行する前に確認する価値がある可能性があります。
また、ノードjsを12未満のバージョンにダウングレードし、nodemoduleを削除してからnpm installを再度実行することもできます
私がやったのは、react-native startとnpx react-native run-Androidです。
ただし、Min19の場合(Ubuntuベース)、実行するまで同じ問題が発生していました。
echo fs.inotify.max_user_watches=582222 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
From: https://reactnative.dev/docs/troubleshooting#content
少なくとも、携帯電話でアプリを実行しています。
エミュレータのエラーメッセージは誤解を招くようなものです。私の場合、Macbookを使用しました。 $ chmod 755 ./gradlew
を実行してAndroid/gradlewの権限を変更する必要があり、その後アプリをビルドしてAndroidエミュレーターにデプロイできました。
デフォルトでは、「Metro Server」と呼ばれる小さなJavaScriptサーバーがポート8081で実行されます。
このサーバーを起動するには、このポートを使用可能にする必要があります。そう、
ポートを解放する方法は?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
Windowsでローカルホストのポートを現在使用しているプロセスを強制終了する方法は?
そして最も重要なのは、facebook @ https://facebook.github.io/react-native/docsで示唆されているように、ノードバージョンを8.xから10.x(latest)にアップグレードしたことです。/getting-started
Linux OSで実行している場合、npmリモートサーバーが実行されていない場合があります。別のターミナル(プロジェクトディレクトリ)を開き、このコマンドを実行しますSudo npm startまたはSudo react-native startSudo react-native run-Android =
私の場合、エミュレータにプロキシを設定しました。そのプロキシを削除すると、正常に戻ります。
場合によっては、React-native bundlerのポートを閉じて、同じプロセスでアプリを再実行したいかもしれません
1.Sudo kill -9 $(Sudo lsof -t -i:9001)
2.npm start inside the project
3. react-native run-Android
私のために働いたのは:
$ adb devices
$ react-native run-Android
メトロブラックリストのこの部分を更新
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];