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

时间:2020-07-19 01:40:14

标签: android kotlin

突然,我尝试打开我的应用程序,但该应用程序不想启动。打开之前它停止了。我开始搜索并尝试了所有其他类似的问题,但是没有一个起作用。这是我的日志:

2020-07-18 22:27:41.652 21042-21042/? I/art: Not late-enabling -Xcheck:jni (already on)
2020-07-18 22:27:41.652 21042-21042/? W/art: Unexpected CPU variant for X86 using defaults: x86
2020-07-18 22:27:41.878 21042-21042/? W/System: ClassLoader referenced unknown path: /data/app/com.ainimei.remotemouse-1/lib/x86
2020-07-18 22:27:41.900 21042-21042/? D/AndroidRuntime: Shutting down VM
2020-07-18 22:27:41.900 21042-21042/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.ainimei.remotemouse, PID: 21042
    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 here:                                       *
    * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
    * to add a valid App ID inside the AndroidManifest.                          *
    * Google Ad Manager publishers should follow instructions here:              *
    * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
    ******************************************************************************
    
    
        at android.app.ActivityThread.installProvider(ActivityThread.java:5856)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5445)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5384)
        at android.app.ActivityThread.-wrap2(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.IllegalStateException: 
    
    ******************************************************************************
    * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
    * should follow the instructions here:                                       *
    * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
    * to add a valid App ID inside the AndroidManifest.                          *
    * Google Ad Manager publishers should follow instructions here:              *
    * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
    ******************************************************************************
    
    
        at com.google.android.gms.internal.ads.zzyz.attachInfo(com.google.android.gms:play-services-ads-lite@@19.2.0:33)
        at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(com.google.android.gms:play-services-ads-lite@@19.2.0:3)
        at android.app.ActivityThread.installProvider(ActivityThread.java:5853)
            ... 10 more

这是我的androidManifest.xml: 请注意,该代码没有元数据标签。但是直到现在我才需要它。另外,我的应用没有在其上使用广告。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ainimei.remotemouse">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <application
        android:allowBackup="true"
        android:fullBackupContent="true"
        android:icon="@drawable/ainimei_logo_icon"
        android:label="@string/app_name"
        android:roundIcon="@drawable/ainimei_logo_icon"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SelectConnectionType" />
        <activity android:name=".ControlBluetoothConnection" />
        <activity android:name=".Connection" />
        <activity
            android:name=".KeyboardActivity"
            android:screenOrientation="landscape" />
        <activity
            android:name=".ProfileSettingsActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".loginActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".buyPremiumActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".select_control"
            android:screenOrientation="portrait" />
        <activity
            android:name=".SettingsActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我还是继续尝试。

2 个答案:

答案 0 :(得分:0)

在清单文件的application标签内,放置以下代码

<application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
             
            /// pass the key generated from your admob which contains ~(APP ID)
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/> // 
    </application>

答案 1 :(得分:0)

只需检查元数据标签是否超出活动标签

如果是这样

<manifest>
    <application>
        <activity>
            <meta-data> 
                android:name="com.google.android.gms.ads.APPLICATION_ID" 
                android:value="ca-app-pub-4347201915048498~6120388314"/>
        </activity>
    </application>
</manifest>

这个应该改成这个

<manifest>
    <application>
        <activity>
        </activity>
        <meta-data 
            android:name="com.google.android.gms.ads.APPLICATION_ID" 
            android:value="ca-app-pub-4347201915048498~6120388314"/>
    </application>
</manifest>