Execution failed for task ‘:app:minifyReleaseWithR8

「かんたんコピペ帳」に一覧リストの並べ替え機能を追加しました。
そしてビルドしたところ、こんなエラーが。。。

Execution failed for task ':app:minifyReleaseWithR8'.

「minifyReleaseWithR8」の何かがアカンということですが、ググってもなかなか解決策が見つかず、EASビルドの無料回数だけが増えていく。。。

そこでエラーログを遡ってみたら、こんなエラーが見つかりました。

> Task :app:minifyReleaseWithR8 FAILED
ERROR:/home/expo/workingdir/build/node_modules/@react-native-community/masked-view/android/build/intermediates/runtime_library_classes_jar/release/classes.jar: R8: Type org.reactnative.maskedview.BuildConfig is defined multiple times: /home/expo/workingdir/build/node_modules/@react-native-community/masked-view/android/build/intermediates/runtime_library_classes_jar/release/classes.jar:org/reactnative/maskedview/BuildConfig.class, /home/expo/workingdir/build/node_modules/@react-native-masked-view/masked-view/android/build/intermediates/runtime_library_classes_jar/release/classes.jar:org/reactnative/maskedview/BuildConfig.class

なにやらよくわかりませんが、どうやら「@react-native-community/masked-view」があやしいかも。

You can only have one of either @react-native-community/masked-view (deprecated) or @react-native-masked-view/masked-view installed in your project at any given time. React Navigation v6 and above requires @react-native-masked-view/masked-view, so you should use that package instead if you are using the latest version of React Navigation.

https://docs.expo.dev/versions/latest/sdk/masked-view/

EXPOの公式にちゃんと書いてありました。
「@react-native-community/masked-view」と「@react-native-masked-view/masked-view」は共存してはいけません、「React Navigation v6」を使う場合は「@react-native-masked-view/masked-view」を使ってね、ということです。

package.jsonを確認したところ、確かに「@react-native-community/masked-view」と「@react-native-masked-view/masked-view」の両方が入っていました!

というわけで「@react-native-community/masked-view」を削除して、めでたくビルドは成功しました。エラーログ大事ですね。
該当部分だけでなく、周囲を見渡すことも必要です。

タイトルとURLをコピーしました