今回は、Android 10 の端末で開発中に発見した現象についてです。
現在、端末から画像を取得する時に「react-native-image-crop-picker」というライブラリを使っているのですが、Google フォトから画像を複数取得しようとしたところ「Invalid image selected」というエラーが発生しました。
最初は画像の複数選択を有効にしたせいかとも思いましたが、Google フォトからではなく「ファイル」アプリから画像を取得したところ、意図した通りに画像パスを取得できたので、どうやらライブラリと Google フォトとの相性が悪いようでした…。
で、こちらの現象について調べたところ、下記の投稿を発見しました。
[Android] Invalid image selected for Google Photos/System Gallery · Issue #1378 · ivpusic/react-native-image-crop-picker
https://github.com/ivpusic/react-native-image-crop-picker/issues/1378
上記記事によると、AndroidManifest.xml
ファイルの <application>
タグを下記のように修正すればいいとのことでした。
<application ...... android:requestLegacyExternalStorage="true"> ...... </application>
AndroidManifest.xml
に 3行目の android:requestLegacyExternalStorage="true"
を追加します。
修正は以上です。
アプリを再ビルドして実行したところ、Android 端末で Google フォトから画像パスが取得できるようになりました!
念のため、このあと複数端末でも確認してみます。
以上、React Native の Android アプリで「react-native-image-crop-picker」ライブラリを使って Google フォトから画像を取得できない時の対処方法についてでした。
ご参考になれば幸いです。