web-dev-qa-db-ja.com

React native run-Androidは変更されたコードを更新しません

Windows PCでReactの開発にAndroid native 0.52.0およびreact-native-cli 2.0.1を使用しています。私が行ったすべての変更にもかかわらず。 react-native run-Androidを実行すると正常にビルドされますが、実行するとデフォルトのリアクションネイティブ画面が表示されます。

react-native run-Android- enter image description here

私が手に入れたアプリ

enter image description here

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を実行します。

30
SmoggeR_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

出力は次のようになります。

`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

21
Rob

ターミナルウィンドウでプロジェクトフォルダーに移動し、このコマンドを試してください

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/
2
Ankit Sharma

おそらく間違ったファイルを更新していて、AppRegistryクラスで呼び出していないのでしょう。

Index.Android.js全体を確認(または投稿)し、呼び出してインポートしているファイルが実際に変更しているファイルであることを確認します。

2
sfratini

これは私のために働いた。ステップ1)

rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman

ステップ2)

react-native start
2
user2436649

これは私のために働いた:

プロジェクトフォルダでこれを実行します

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

1
lisandro

この コメント 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

その他のリンク: https://github.com/facebook/watchman/blob/4b98623e8fde17588f27494f3ae8f084b9b227d3/QueryableView.cpp#L48

1
MernXL

私の場合、gradle.propertiesの下の行を削除することで解決しました。

org.gradle.configureondemand = true

1
user2672279

index.Android.jsを使用している場合は、次の手順に従います。

削除index.Android.bundleAndroid/app/src/main/assetsその後-

  1. 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 /

  2. cd ./Android

  3. ./ gradlew assembleRelease -x bundleReleaseJsAndAssets

1
Pritam Guha

その後、以下のスクリプトを実行します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
1
Asma_Kh

私にとって問題は、AndroidManifest.xmlからインターネットのアクセス許可を削除したことです(技術的には必要ないため)。 React Nativeは、その許可を使用して、アプリを開発マシンに接続します(そしてライブデバッグを有効にします)。

<uses-permission Android:name="Android.permission.INTERNET" />
1
Karl Penzhorn

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

0
pappu kumar

段階で修正:

  1. ライブリロードを有効にする
  2. ホットリロードを無効にする
  3. 開発設定で、JS開発モードのチェックを外します

これで、コードを変更するたびにアプリが自動的に更新されます。

0
Engkus Kusnadi

CodePushユーザーの場合

私はこれと同じ問題を抱えていましたが、本番ビルドでコードを更新したわけではなく、開発では問題なく動作します。

私の問題はCodePushで、前回のCodePushリリースのターゲットバージョンと同じバージョンであり、必須のアップデートであったためにアプリを更新していました(テスト目的のためだけにバージョンターゲットを変更しませんでした) App.jsでCodePushコードをコメントしましたが、完全に機能します。

0
Jean Lambert

Android St​​udio-> "Tools"メニュー-> "AVD manager」を選択し、使用しているエミュレータを右クリックして、「Wipe Data」を選択してから「Cold Boot Now」で問題を解決できます。

enter image description here

0
J.Q

index.Android.jsまたはindex.ios.jsファイルはありませんでした

この場合、次のようにモバイル/エミュレーターの指示に従う必要があります。

enter image description here

App.jsを保存したら、必ずRを2回大文字で入力してください

自動的に変更するには、AndroidエミュレータでCTRL + M(MacOSではCMD + M)を押すか、実行中のアプリがインストールされているAndroidデバイスを振ってHot reloading(現在の状態を維持し、変更したファイルのみを変更)またはLive reloading(アプリ全体をリロード)。

0
NineCattoRules

プロジェクトディレクトリに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"

ここに画像の説明を入力

0