无法获取提供程序com.google.android.gms.ads.MobileAdsInitProvider:java.lang.IllegalStateException

无法获取提供程序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

我将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>
然而,这个问题无法解决。它仍然打印如下:

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版谷歌移动广告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>

有关更多详细信息,请参阅。

在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>