首页 > 解决方案 > 即使我添加了所有必需的设置,Flutter FIrebase Admob 在应用程序启动时崩溃

问题描述

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

安卓清单;

显现

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

初始化

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

但该应用程序似乎并不想启动。如果我从我的 pubspec 文件中删除 Admob 依赖项,则该应用程序可以正常工作,因此 Admob 绝对如此。

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

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

我究竟做错了什么?

标签: flutterdartadmobfirebase-admob

解决方案


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

该问题与元数据标签在 Android Manifest 中的位置有关。

该文档指示将其放置在 中<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。这解决了问题,应用程序不会崩溃并按预期加载广告。


推荐阅读