以前、リリースした React Native の Android アプリで、API との通信に失敗するという記事を投稿しましたが、今度は Mapbox の地図が表示されないという現象が発生しました。
なお、この現象が発生するのは Android 11 の端末のみで、地図が表示されないだけでなくアプリが落ちてしまいます。
ちなみに、使用しているライブラリは「react-native-mapbox-gl/maps」です。
幸いにも、Google Play Console にクラッシュ時のレポートが送信されていたので、そちらを確認したところ、「SecurityException」が発生しているとのことでした。
で、それで検索したところ、下記の記事がヒットしました。
SecurityException: getDataNetworkTypeForSubscriber (Android 11) · Issue #3577 · mapbox/mapbox-navigation-android · GitHub
https://github.com/mapbox/mapbox-navigation-android/issues/3577
Android のネイティブアプリの Mapbox のライブラリの Issues ですが、こちらによると、android/app/build.gradle
に下記を追加すればOKとのことでした。
dependencies { ...... implementation 'com.mapbox.mapboxsdk:mapbox-android-telemetry:6.1.0' }
ネイティブアプリのライブラリではバグは既に修正済みで、次回のリリースに反映されるらしいのですが、どうやら React Native の方のライブラリではまだ修正されていないようでした。
そのため、手動で上記を追加する必要があります。
こちらを追加後、アプリをリリースビルドし、Android 11 の端末で実行してみたところ、今度はアプリが落ちることもなく、正常に地図が表示されました!
Google Play のアプリも更新し、他の端末でも確認しましたがこちらも問題なく動作しました!
以上、React Native の Android アプリで Maxbox の地図が表示されない不具合の修正方法についてでした。
リリース用ビルドで発生するのではなく、Android 11 でのみ発生する不具合の気もしますが…とりあえず、ご参考になれば幸いです。