Android Studio 无法获取提供商com.google.android.gms.ads.MobileAdsInitProvider

piv4azn7  于 2022-12-13  发布在  Android
关注(0)|答案(1)|浏览(331)

我正在尝试构建EAS应用程序以使用react-native-google-mobile-ads
下面是我的诗云:

expo init
expo install expo-dev-client
expo install react-native-google-mobile-ads
eas prebuild

已修改的app.json

{
  "expo": {
    "name": "testing-new-eas",
    "slug": "testing-new-eas",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "light",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png",
        "backgroundColor": "#FFFFFF"
      },
      "package": "com.basselturky.testingneweas"
    },
    "web": {
      "favicon": "./assets/favicon.png"
    },
    "extra": {
      "eas": {
        "projectId": "3807fdfa-75de-4baf-8e76-951ee8dc5d70"
      }
    }
  },
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-************",
    "ios_app_id": "ca-app-pub-************"
  }
}

AndroidManifest.xml

<meta-data android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT" android:value="false"/>
    <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-***my_ad_id***"/>

我用eas build --profile development -p android构建了它
在我的Android模拟器上安装了APK文件,然后expo start --dev-client
每次我启动应用程序,它崩溃,我得到这个错误的Android Studio Logcat。
我甚至试过AdMob测试ID,但它一直说“Invalid application ID.
Logcat错误:

--------- beginning of crash
2022-10-12 03:38:24.531 8638-8638/com.basselturky.testingneweas E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.basselturky.testingneweas, PID: 8638
    java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: 
    
    ******************************************************************************
    * Invalid application ID. Follow instructions here:                          *
    * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
    * to find your app ID.                                                       *
    ******************************************************************************
    
    
        at android.app.ActivityThread.installProvider(ActivityThread.java:6988)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.IllegalStateException: 
    
    ******************************************************************************
    * Invalid application ID. Follow instructions here:                          *
    * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
    * to find your app ID.                                                       *
    ******************************************************************************
    
    
        at com.google.android.gms.ads.internal.client.zzee.attachInfo(com.google.android.gms:play-services-ads-lite@@21.2.0:22)
        at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(com.google.android.gms:play-services-ads-lite@@21.2.0:1)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6983)
            ... 10 more
ljsrvy3e

ljsrvy3e1#

我已查明导致此崩溃/错误的原因。
我使用了AdMob广告单元中的广告ID,而不是app.json中的应用ID
解决方法:
已更改此:

"react-native-google-mobile-ads": {
    "android_app_id": "ad unit id", <------ This
    "ios_app_id": "ad unit id"
  }

有了这个:

"react-native-google-mobile-ads": {
    "android_app_id": "app id", <------ With this
    "ios_app_id": "app id"
  }

给您带来不便,敬请谅解:)
并且EAS构建仅需要这些步骤,

expo init
expo install expo-dev-client
expo install react-native-google-mobile-ads

编辑app.json:
第一个

相关问题