私はreactネイティブで作業していますが、新しいプロジェクトをビルドするたびに、デバイスで動作するようですが、再起動しようとすると、1つ以上のエラーが発生します
私はgithubで解決策を探してみましたが、どれも明確ではなく、ここでエラーメッセージ全体を投稿します。
react-native run-Android info jetifierを実行してライブラリをAndroidXに移行します。 「--no-jetifier」フラグを使用して無効にできます。 Jetifierは、転送する855ファイルを見つけました。 4つのワーカーを使用しています... info JSサーバーを開始しています... infoアプリをインストールしています... Gradleデーモンを開始しています(後続のビルドはより高速になります)
タスク:app:transformNativeLibsWithMergeJniLibsForDebugが失敗しました
このビルドでは非推奨のGradle機能が使用され、Gradle 6.0との互換性がなくなりました。個々の非推奨の警告を表示するには、「-warning-mode all」を使用します。参照 https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings 24の実行可能なタスク:2が実行され、2が最新
失敗:ビルドは例外で失敗しました。
問題点:タスク ':app:transformNativeLibsWithMergeJniLibsForDebug'の実行が失敗しました。
パス「C:\ REACT_NATIVE\AwesomeProject2\Android\app\build\intermediates\transforms\mergeJniLibs\debug\0\lib\arm64-v8a」を読み取れませんでした。
試してください:--stacktraceオプションを指定して実行し、スタックトレースを取得します。 --infoまたは--debugオプションを指定して実行し、より多くのログ出力を取得します。 --scanを指定して実行すると、完全な洞察が得られます。
https://help.gradle.org でさらにヘルプを取得します
57秒で構築に失敗
エラーアプリのインストールに失敗しました。 Android開発環境がセットアップされていることを確認してください: https://facebook.github.io/react-native/docs/getting-started.html#Android-development-環境 。詳細については、-verboseフラグを指定してCLIを実行してください。エラー:コマンドが失敗しました:gradlew.bat app:installDebug -PreactNativeDevServerPort = 8081
失敗:ビルドは例外で失敗しました。
問題点:タスク ':app:transformNativeLibsWithMergeJniLibsForDebug'の実行が失敗しました。
パス「C:\ REACT_NATIVE\AwesomeProject2\Android\app\build\intermediates\transforms\mergeJniLibs\debug\0\lib\arm64-v8a」を読み取れませんでした。
試してください:--stacktraceオプションを指定して実行し、スタックトレースを取得します。 --infoまたは--debugオプションを指定して実行し、より多くのログ出力を取得します。 --scanを指定して実行すると、完全な洞察が得られます。
https://help.gradle.org でさらにヘルプを取得します
57秒で構築に失敗
at checkExecSyncError (child_process.js:623:11)
at execFileSync (child_process.js:641:15)
at runOnAllDevices (C:\REACT_NATIVE\AwesomeProject2\node_modules\@react-native-community\cli-platform-Android\build\commands\runAndroid\runOnAllDevices.js:75:39)
at buildAndRun (C:\REACT_NATIVE\AwesomeProject2\node_modules\@react-native-community\cli-platform-Android\build\commands\runAndroid\index.js:169:41)
at C:\REACT_NATIVE\AwesomeProject2\node_modules\@react-native-community\cli-platform-Android\build\commands\runAndroid\index.js:135:12
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async Command.handleAction (C:\REACT_NATIVE\AwesomeProject2\node_modules\react-native\node_modules\@react-native-community\cli\build\cliEntry.js:160:7)
クリーニングタスクを実行すると、問題が解決しました。プロジェクトのAndroid dirでは、gradle wrapperを 'clean'で実行します
cd Android && ./gradlew clean
次に、プロジェクトディレクトリに戻って、もう一度実行してみます。
cd .. && react-native run-Android
android/app/build.gradleに移動し、Androidで以下を追加します
Android {
...
+ packagingOptions {
+ pickFirst '**/libjsc.so'
+ pickFirst 'lib/x86/libc++_shared.so'
+ pickFirst 'lib/x86_64/libjsc.so'
+ pickFirst 'lib/arm64-v8a/libjsc.so'
+ pickFirst 'lib/arm64-v8a/libc++_shared.so'
+ pickFirst 'lib/x86_64/libc++_shared.so'
+ pickFirst 'lib/armeabi-v7a/libc++_shared.so'
+ }
}
クリーニングタスクを実行すると、問題が解決しました。プロジェクトのAndroid dirでは、gradle wrapperを 'clean'で実行します
cd Android && ./gradlew clean
次に、プロジェクトディレクトリに戻って、もう一度実行してみます。
cd .. && react-native run-Android
私のために働くきれいなプロジェクト
反応ネイティブプロジェクトは、約1つのXCodeプロジェクトと1つのAndroid Project。です(純粋なjsコードでクリーンアップする必要はありません)。
だからあなたは何が必要でしょう
XCodeプロジェクトを
$ cd ios
$ xcodebuild clean
$ cd .. && react-native run-ios
そして、クリーンAndroid Project with
$ cd Android
$ ./gradlew clean
$ cd .. && react-native run-Android
そのためのバッチファイルを作成するだけです。
Android/app/build.gradleに移動し、Androidの下に次のものを追加します。
Android {
packagingOptions {
pickFirst '**/libjsc.so'
}
}
その後、再度実行します。ネイティブの反応を使用している場合は、npmコンソールを閉じて再度実行することをお勧めします。
AARライブラリがBridgeプロジェクトのメインアプリケーションにリンクしていませんでした。
解決:
implementation files(‘libs/sdk-5.0.0.aar’)
の代わりに
implementation(name:'sdk-5.0.0', ext:'aar')
AndroidプロジェクトへのAARファイルのインポートに関連する別の問題に直面しました https://stackoverflow.com/a/58602329/3197778
android/app/build.gradに移動します
Android { ... + packagingOptions { + pickFirst '**/libjsc.so' + pickFirst 'lib/x86/libc++_shared.so' + pickFirst 'lib/x86_64/libjsc.so' + pickFirst 'lib/arm64-v8a/libjsc.so' + pickFirst 'lib/arm64-v8a/libc++_shared.so' + pickFirst 'lib/x86_64/libc++_shared.so' + pickFirst 'lib/armeabi-v7a/libc++_shared.so'
+ } }