(Android12(API31)以上をビルド対象に含めた時)
リリース時や、アプリ実行時に発生するエラーへの対処法。
何ヶ所を手動で直させる気だ…。
(AdMob導入時)対象端末でアプリ実行するとクラッシュ
- 3月4日に、Unity版も対応済みのVerに更新された。
(多分、上書きしてからForce Resolveすれば良い)
AdMobプラグインのWorkManagerとの依存関係のバグ。
Android版のAdMobプラグインVer20.5.0(執筆時最新)では対応してある。
しかし、Unity版(執筆時最新)に含まれるのが、Ver20.2.0なので手動で直す必要がある。
手順
- 上部メニュー -> Edit -> Project Settings…
- Player -> Publishing Settings -> Custom Main Gradle Templateを有効化。
- 作成された、Assets/Plugins/Android/baseProjectTemplate.gradleを開く。
- implementation ‘com.google.android.gms:play-services-ads:20.2.0’の次の行に以下のコードを追加。
constraints {
implementation('androidx.work:work-runtime:2.7.0') {
because '''androidx.work:work-runtime:2.1.0 pulled from
play-services-ads has a bug using PendingIntent without
FLAG_IMMUTABLE or FLAG_MUTABLE and will fail in Apps
targeting S+.'''
}
}
- *AdMob SDK (Android) Release Notesより一部引用。
- External Dependency Managerで、Force Resolveを実行すると設定が上書きされるので注意。
(通常のResolveはOk)
参考リンク
Release Notes | Android | Google for Developers
Release Google Mobile Ads Unity Plugin v6.1.2 · googleads/googleads-mobile-unity
Plugin: Fixed Github issue 1786 related to GoogleMobileAdsSettings. Fixed issue related to missing GADUAdNetworkExtras.h...
【更新/解決】Android12にしたら、FLAG_IMMUTABLEまたはFLAG_MUTABLEエラーでアプリが起動しない - Qiita
#概要2021/10/20にGoogle Pixel系(Pixel3以降)にAndroid12(Android S、 API31)が配布されたので遅ればせながら、自作アプリの動作確認をしてみた。…
GooglePlayへアップロード時に警告 (対象端末にインストール出来ない)
(AndroidManifestへ、android:exported属性の設定を明示していない場合)
アップロード時に以下の警告文が表示される。
アップロードされた APK または Android App Bundle には、インテント フィルタを使用するアクティビティ、アクティビティ エイリアス、サービス、またはブロードキャスト レシーバが含まれていますが、’android:exported’ プロパティ セットは使用されていません。このファイルは Android 12 以降にはインストールできません。
詳細: developer.android.com/about/versions/12/behavior-changes-12#exported
Google Play Consoleのアプリのアップロード画面
手順
- 上部メニュー -> Edit -> Project Settings…
- Player -> Publishing Settings -> Custom Main Manifestを有効化。
- 作成された、Assets/Plugins/Android/AndroidManifest.xmlを開く。
- android:theme=”@style/UnityThemeSelector”>の末尾の>を消す。
- その次の行に以下のコードを追加。
android:exported="true">