Je mets à jour mon Android Studio (3.2.1) et son sdk vers la dernière version. Après cela, il a fallu mettre à jour manuellement Manifest en ajoutant les balises suivantes:
<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>
moyennant quoi, à la place, l'identifiant de l'application, je mets le véritable identifiant de mon application. La valeur a également été modifiée et correspond à l'identifiant de bloc d'annonce de droite, comme illustré ici https://developers.google.com/admob/Android/quick-start . J'ai aussi appelé cette fonction dans le MainActivity.kt:
MobileAds.initialize(this, resources.getString(R.string.banner_ad_unit_id))
Cependant, le problème n'a pas pu être résolu. Il imprime toujours comme suit:
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
Quelqu'un pourrait-il me dire pourquoi cela se produit ou m'aider à le résoudre? J'ai essayé de google le problème, mais il n'y a pas de solution. Cela semble être un nouveau problème qui n’a toujours pas été résolu. Merci d'avance.
Google a mis à jour les annonces Google. Par conséquent, si vous mettez à jour votre bibliothèque Admob progressivement, vous devez l'ajouter à votre manifeste.
<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>
Cela est dû à la mise à jour du SDK AdMob. Vous devez maintenant ajouter appID dans votre fichier manifeste.
<application> . . .
<meta-data
Android:name="com.google.Android.gms.ads.APPLICATION_ID"
Android:value="ca-app-pub-################~##########"/>
</application>
Vous pouvez obtenir appID à partir d'ici -> Google addmob -> Sélectionner l'application -> Paramètres de l'application -> ID de l'application.
Vous pouvez en lire plus à partir d’ici ads-developers .
Si vous souhaitez utiliser des annonces test avant de créer votre propre identifiant, vérifiez les identifiants de test AdMob à partir d'ici developers.google .
J'espère que ceci vous aidera. Merci :)
Ajouter dans votre fichier manifeste
<meta-data
Android:name="com.google.Android.gms.ads.AD_MANAGER_APP"
Android:value="true" />
Problème résolu. J'ai utilisé le mauvais identifiant d'un AdUnit. Il a besoin du véritable identifiant d'application de Google AddMob: Google AdMob -> Sélectionner l'application -> Paramètres de l'application -> Identifiant de l'application
Je pense que le nom devrait être "APPLICATION_ID" et non "APP_ID"
Le SDK Google Mobile Ads v17.0.0
pour Android vient de paraître et il s'accompagne de ces modifications importantes.
Changements requis dans AndroidManifest.xml
À partir de la version 17.0.0, si vous êtes un éditeur AdMob, vous devez maintenant ajouter votre identifiant d'application AdMob dans votre fichier AndroidManifest.xml. Une fois que vous avez trouvé votre identifiant d'application AdMob dans l'interface utilisateur AdMob, ajoutez-le à votre manifeste en ajoutant la balise suivante:
<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>
Si cette balise n'est pas ajoutée, l'application se bloquera au lancement de l'application avec un message commençant par The Google Mobile Ads SDK was initialized incorrectly.
Que faire si j'utilise Google Ad Manager au lieu de AdMob?
Les éditeurs utilisant Google Ad Manager devront se déclarer en tant qu'application Ad Manager avec une balise différente pour éviter le même blocage:
<manifest>
<application>
<meta-data
Android:name="com.google.Android.gms.ads.AD_MANAGER_APP"
Android:value="true"/>
</application>
</manifest>
Voir le lien pour plus de détails.