Android Studio(3.2.1)とそのSDKを最新バージョンに更新します。その後、次のタグを追加して、マニフェストの手動更新が必要になりました。
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:roundIcon="@drawable/ic_launcher"
Android:supportsRtl="true"
Android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning">
<meta-data
Android:name="com.google.Android.gms.ads.APP_ID"
Android:value="ca-app-pub-#############"/>
<activity Android:name=".MainActivity">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".NewActivity" />
<activity Android:name=".PreviewActivity" />
<activity Android:name=".EditActivity" />
<activity
Android:name=".preferencesdata.AboutActivity"
Android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
<activity Android:name=".preferencesdata.SettingsActivity"
Android:label="@string/settings">
<meta-data
Android:name="Android.support.PARENT_ACTIVITY"
Android:value=".MainActivity"/>
</activity>
</application>
その代わりに、アプリIDにアプリの実際のIDを入力します。ここに示すように、値は正しい広告ユニットIDに変更されました https://developers.google.com/admob/Android/quick-start 。また、MainActivity.ktでこの関数を呼び出しました。
MobileAds.initialize(this, resources.getString(R.string.banner_ad_unit_id))
ただし、問題を解決できませんでした。それでも次のように印刷されます。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.easyapps.cryptnote, PID: 3991
Java.lang.RuntimeException: Unable to get provider com.google.Android.gms.ads.MobileAdsInitProvider: Java.lang.IllegalStateException:
******************************************************************************
* The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers *
* should follow the instructions LINK to add a valid *
* App ID inside the AndroidManifest. Google Ad Manager publishers should *
* follow instructions here: LINK. *
******************************************************************************
at Android.app.ActivityThread.installProvider(ActivityThread.Java:5156)
at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4748)
at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4688)
at Android.app.ActivityThread.-wrap1(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1405)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:148)
at Android.app.ActivityThread.main(ActivityThread.Java:5417)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:726)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:616)
Caused by: Java.lang.IllegalStateException:
******************************************************************************
* The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers *
* should follow the instructions here: LINK to add a valid *
* App ID inside the AndroidManifest. Google Ad Manager publishers should *
* follow instructions here: LINK. *
******************************************************************************
at com.google.Android.gms.internal.ads.zzmn.attachInfo(Unknown Source)
at com.google.Android.gms.ads.MobileAdsInitProvider.attachInfo(Unknown Source)
at Android.app.ActivityThread.installProvider(ActivityThread.Java:5153)
... 10 more
なぜそれが起こるのか、それを解決するのを手伝ってくれる人がいますか?問題をグーグルで検索しようとしましたが、解決策はありません。これは、まだ解決されていない新しい問題のようです。事前に感謝します。
GoogleはGoogle広告の更新を提供したため、Admobライブラリをgradleで更新した場合、マニフェストに追加する必要があります。
<manifest>
<application>
<!-- TODO: Replace with your real AdMob app ID -->
<meta-data
Android:name="com.google.Android.gms.ads.APPLICATION_ID"
Android:value="ca-app-pub-################~##########"/>
</application>
</manifest>
これは、更新されたAdMob SDKが原因で発生しました。次に、マニフェストファイルにappIDを追加する必要があります。
<application> . . .
<meta-data
Android:name="com.google.Android.gms.ads.APPLICATION_ID"
Android:value="ca-app-pub-################~##########"/>
</application>
ここからappIDを取得できます-> Google addmob->アプリの選択->アプリの設定->アプリID。
詳しくはこちらをご覧ください ads-developers 。
独自のIDを入力する前にテスト広告を使用する場合は、ここからAdMobテストIDを確認してください developers.google 。
これがお役に立てば幸いです。ありがとう:)
マニフェストファイルに追加
<meta-data Android:name="com.google.Android.gms.ads.AD_MANAGER_APP" Android:value="true" />
名前は「APP_ID」ではなく「APPLICATION_ID」である必要があると思います
問題が修正されました。 AdUnitの間違ったIDを使用しました。 Google AddMobの実際のアプリIDが必要です:Google AdMob->アプリの選択->アプリの設定->アプリID!
Android向けのGoogle Mobile Ads SDK v17.0.0
がリリースされたばかりで、これらの重要な変更が伴います。
AndroidManifest.xmlの変更が必要です
バージョン17.0.0以降、AdMobパブリッシャーの場合、AndroidManifest.xmlファイルにAdMobアプリIDを追加する必要があります。 AdMob UIでAdMobアプリIDを見つけたら、次のタグを追加してマニフェストに追加します。
<manifest>
<application>
<!-- TODO: Replace with your real AdMob app ID -->
<meta-data
Android:name="com.google.Android.gms.ads.APPLICATION_ID"
Android:value="ca-app-pub-################~##########"/>
</application>
</manifest>
このタグを追加しないと、アプリの起動時にアプリがクラッシュし、The Google Mobile Ads SDK was initialized incorrectly.
で始まるメッセージが表示されます
AdMobの代わりにGoogle Ad Managerを使用している場合はどうなりますか?
Google Ad Managerを使用しているサイト運営者は、同じクラッシュを回避するために、異なるタグを持つAd Managerアプリとして自分自身を宣言する必要があります。
<manifest>
<application>
<meta-data
Android:name="com.google.Android.gms.ads.AD_MANAGER_APP"
Android:value="true"/>
</application>
</manifest>
詳細については、 link をご覧ください。