Windows PCでReactの開発にAndroid native 0.52.0およびreact-native-cli 2.0.1を使用しています。私が行ったすべての変更にもかかわらず。 react-native run-Android
を実行すると正常にビルドされますが、実行するとデフォルトのリアクションネイティブ画面が表示されます。
私が手に入れたアプリ
index.js
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('albums', () => App);
app.js
import React from 'react'
import ReactNative, { Text } from 'react-native'
export default const App = () => {
return (
<Text>Hello World</Text>
)
}
react-native init albums
を実行したとき、index.jsファイルが作成されただけで、index.Android.jsまたはindex.ios.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/
index.Android.jsがある場合は、代わりにこれを実行します。
react-native bundle --platform Android --dev false --entry-file index.Android.js --bundle-output Android/app/src/main/assets/index.Android.bundle --assets-dest Android/app/src/main/res/
次に、react-native run-Androidを実行します。
ソリューション
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
出力は次のようになります。
`c:\Users\lenger\Desktop\webrowser>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
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (43ms)
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (38ms)
Loading dependency graph, done.
bundle: start
bundle: finish
bundle: Writing bundle output to: Android/app/src/main/assets/index.Android.bundle
bundle: Done writing bundle output
以降
react-native run-Android
を再度実行すると、変更が適用されます。
https://lengerrong.blogspot.am/2018/01/react-native-run-Android-do-not.html
ターミナルウィンドウでプロジェクトフォルダーに移動し、このコマンドを試してください
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/
おそらく間違ったファイルを更新していて、AppRegistryクラスで呼び出していないのでしょう。
Index.Android.js全体を確認(または投稿)し、呼び出してインポートしているファイルが実際に変更しているファイルであることを確認します。
これは私のために働いた。ステップ1)
rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman
ステップ2)
react-native start
これは私のために働いた:
プロジェクトフォルダでこれを実行します
c:\Users\lenger\Desktop\YourProjectFolder>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
Cでシンボリックリンクのフォルダーをスキャンする:
\Users\lenger\Desktop\webrowser\node_modules (43ms)
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (38ms)
Loading dependency graph, done.
bundle: start
bundle: finish
bundle: Writing bundle output to: Android/app/src/main/assets/index.Android.bundle
bundle: Done writing bundle output
React-native run-Androidを再度実行します
私はこの解決策を見つけたリンクを共有します: https://lengerrong.blogspot.com/2018/01/react-native-run-Android-do-not.html
この コメント githubで私の問題を修正しました。
@neonsec Cool, it do works !
and I find a reason why this happened
https://github.com/facebook/watchman/blob/4b98623e8fde17588f27494f3ae8f084b9b227d3/QueryableView.cpp#L48
it looks like when a .git/index.lock or a .hg/wlock file exist, watchman will do nothing
解決策:DELETE .git/index.lock
ファイル
## root app dir
rm -f .git/index.lock
私の場合、gradle.propertiesの下の行を削除することで解決しました。
org.gradle.configureondemand = true
index.Android.jsを使用している場合は、次の手順に従います。
削除index.Android.bundle内Android/app/src/main/assetsその後-
react-native bundle --platform Android --dev false --entry-file index.Android.js --bundle-output Android/app/src/main/asset/index.Android.bundle --assets-dest Android/app/src/main/res /
cd ./Android
./ gradlew assembleRelease -x bundleReleaseJsAndAssets
その後、以下のスクリプトを実行します1.gradlew clean 2.react-native link
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
私にとって問題は、AndroidManifest.xmlからインターネットのアクセス許可を削除したことです(技術的には必要ないため)。 React Nativeは、その許可を使用して、アプリを開発マシンに接続します(そしてライブデバッグを有効にします)。
<uses-permission Android:name="Android.permission.INTERNET" />
package.jsonファイルを開き、このコードを更新します。
"scripts": {
"Android": "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 && react-native run-Android",
"ios": "react-native run-ios"
},
正しいフォルダにいると仮定して、これを試してください:
このコマンドを実行すると、両方のコマンドが自動的に実行されます。
npm run Android
段階で修正:
これで、コードを変更するたびにアプリが自動的に更新されます。
私はこれと同じ問題を抱えていましたが、本番ビルドでコードを更新したわけではなく、開発では問題なく動作します。
私の問題はCodePushで、前回のCodePushリリースのターゲットバージョンと同じバージョンであり、必須のアップデートであったためにアプリを更新していました(テスト目的のためだけにバージョンターゲットを変更しませんでした) App.jsでCodePushコードをコメントしましたが、完全に機能します。
プロジェクトディレクトリにpackage.jsonファイルがあります。スクリプトの下のそのjsonファイルに次のコードスニペットを追加できます。その後、npm run Android-windows
という1つのコマンドを使用してアプリケーションを実行できます。正常に動作するには、以下のコードスクリプトを追加する必要があります。
"Android-windows": "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 && react-native run-Android"