Flutter FIrebase Admob 在应用程序启动时崩溃,即使我已经添加了所有必需的设置

Flutter FIrebase Admob crashing on app start even though i have added all required setups

我正在尝试在 Flutter 中实现 Google Admob。我已经添加了所需的依赖项:

Android 清单;

在应用程序中添加了初始化

我有一个 google-services.json 文件添加到我的项目中,这与我成功用于 Firestore 等的文件相同。

但是应用似乎就是不想启动。如果我从我的 pubspec 文件中删除 Admob 依赖项,该应用程序可以正常工作,因此对于 Admob 来说肯定是这样。

我知道 testAppId 通过 AndroidManifest 中指定的相同 appid 提取,因为这是 google 测试广告 ID。

我还没有实施任何横幅、插页式广告。我只是想先初始化并至少获取应用程序 运行。

我做错了什么?

因此 firebase_admob 文档似乎需要更新,因为它不准确。

此问题与 Android 清单中元数据标记的放置有关。

文档指示将它放在 <application> 中,但是它没有指示如果您还有 <activity> 的标签该怎么做:

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

但是,这不起作用。我偶然发现了以下视频(https://www.youtube.com/watch?v=d2aCCIIUebc --> 检查 17:20 标记),用户指出了同样的问题,通过如下移动标签解决了这个问题:

 <manifest>
   <application>

     <activity

     </activity>

      <meta-data
       <!-- TODO: Replace with your real AdMob app ID -->
         android:name="com.google.android.gms.ads.APPLICATION_ID"
         android:value="ca-app-pub-################~##########"/>

   </application>
 </manifest>   

注意:更改是将 Meta-data 标签移到 application 标签之外。这解决了问题,应用程序不会崩溃并按预期加载广告。