无法获取提供程序com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException
我将Android Studio(3.2.1)及其sdk更新为最新版本。之后,需要通过添加以下标记手动更新清单:无法获取提供程序com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException,android,kotlin,sdk,ads,Android,Kotlin,Sdk,Ads,我将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:supportsRt
<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>
然而,这个问题无法解决。它仍然打印如下:
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
有人能告诉我为什么会这样,或者帮我解决吗?我试图用谷歌搜索这个问题,但没有解决办法。这似乎是一个尚未解决的新问题。非常感谢。我认为名称应该是“应用程序ID”而不是“应用程序ID”这是因为更新了AdMob SDK。现在需要在清单文件中添加appID
<application> . . .
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
</application>
如果要在放置自己的id之前使用测试广告,请从此处检查AdMob测试id
希望这对你有帮助。谢谢:)谷歌提供了谷歌广告的更新,因此如果您在gradle中更新了Admob库,则需要将其添加到清单中
<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>
添加到清单文件中
<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true" />
Android版谷歌移动广告SDKv17.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>
有关更多详细信息,请参阅。在Unity3D的V3.18和Ad SDK V7.45.0版中,您需要在以下位置设置这些数据:@Menu:Assets>Google Mobile Ads>Settings&它会自动将这些数据写入清单文件
<application> . . .
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
</application>
将应用程序ID和AD管理器应用程序直接添加到清单文件中(其他答案中已经给出),这对我来说仍然是个难题。重要提示:从Google Mobile Ads SDK 17.0.0版开始,这一步是必需的。未能添加此标记会导致崩溃,并显示以下消息:Google Mobile Ads SDK初始化错误。
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
对于在Xamarin Forms跨平台应用程序中遇到此错误的用户,错误
无法获取提供程序com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException`
这可能是因为安装了Xamarin.GooglePlayServices.Ads的版本。当我使用version71.1720.0
时,我遇到了这个错误。因此,我卸载了这个版本,并将其恢复到版本60.1142.1
,它工作正常,没有崩溃
有关教程,请参阅
java.lang.RuntimeException:无法获取提供程序com.google.android.gms.ads.mobileadsini提供程序:java.lang.ClassNotFoundException:未找到类“com.google.android.gms.ads.mobileadsini提供程序”
如果您在这里搜索时遇到上述错误,可能不是因为您忘记在清单中插入adMob元数据。我曾经遇到过这个问题,解决方案是在应用程序中实现MultiDex
以下是谷歌的说明:如果您尚未发布应用程序,请尝试以下操作
确保检查以下步骤
1。项目级Gradle在所有项目中都添加了google()
所有项目{
存储库{
谷歌()
}
}
使用新的Admob库,我们必须在onCreate()
方法中初始化和加载Ad,并在AndroidManifest
文件中添加应用程序ID,如其他答案中所述。但是不要把广告ID和应用ID混淆,这是我犯的错误
Ex App ID: ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx
Ex Ad ID: ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx
不要混淆应用程序ID。您应该不要用您的应用程序ID替换它,例如com.example.myapp
。保持原样
<application>
...
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
...
</application>
...
...
我已经添加了,但错误没有解决。解决方案是在android->app->src->main中的androidManifest.xml文件中放置最后一个其他元数据。像这样:
<application>
...
...
< meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
</application>
...
...
<元数据
android:name=“com.google.android.gms.ads.APPLICATION\u ID”
android:value=“ca应用程序酒吧——”
解决方案是将元数据行放在最后一行(意思是在android清单文件中所有其他元数据的下面,但就在关闭应用程序标记之前)。您将元数据标记放在哪里了?我编辑了问题并添加了清单数据。现在你应该可以看到我把元数据标签放在哪里了。我很抱歉,但我不想共享应用程序id和广告id,这就是我替换或更改它们的原因。谢谢你的帮助,兄弟!按照这个答案,我面临着同样的问题,但在我的应用程序中,我没有包括广告,我应该添加元数据部分吗?如果是,我可以从哪里获取appID?我不知道在哪里可以找到“Google addmob”。请注意:元数据标签必须以不同的方式处理,具体取决于您使用的广告服务。使用AdMod时使用:使用Google广告管理器时使用:当然!此外,我已经尝试将其替换为applicationId下build.gradle中定义的真实应用程序id。没有成功,应用程序仍然崩溃…你的意思是用哪个ID替换“应用程序ID”?应用程序id?因为当我这样设置它时,它崩溃了。我发现了问题,我使用了错误的ID(AdUnit的ID),这就是为什么它不起作用。非常感谢!我的工作对我起了作用,只是为了添加一个侧注,你可能想在你自己的id之前使用测试广告,你可能想在你自己的id之前使用测试广告,id上写着“ca-app-pub-ca-app-pub-35支支支支支支支,上面写着“ca-app-pub-pupub-pu-pu-pua-pupu-35支支支支支支支支支支支支支支上,上面写着“ca-ca-ca-appapp-apppupupupupupupupupupupupu-pupupupupupupu-pupu-pu-pupupu-pu-pu支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支支没有包括广告,我应该添加元数据部分吗?如果是,我可以从哪里获取appID?我不知道在哪里可以找到“GoogleAddMob”。嗨@coder我能知道哪个是Google吗
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
<application>
...
...
< meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
</application>