flutter - 即使我添加了所有必需的设置,Flutter FIrebase Admob 在应用程序启动时崩溃
问题描述
我正在尝试在 Flutter 中实现 Google Admob。我添加了所需的依赖项:
安卓清单;
在应用程序中添加了初始化
我在我的项目中添加了一个 google-services.json 文件,这与我成功用于 Firestore 等的文件相同。
但该应用程序似乎并不想启动。如果我从我的 pubspec 文件中删除 Admob 依赖项,则该应用程序可以正常工作,因此 Admob 绝对如此。
我知道testAppId
通过 AndroidManifest 中指定的相同 appid 进行拉取,因为这是 google 测试广告 id。
我还没有实施任何横幅、插页式广告。我只是想先初始化,至少让应用程序运行。
我究竟做错了什么?
解决方案
因此,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
。这解决了问题,应用程序不会崩溃并按预期加载广告。
推荐阅读
- netty - Netty - 围绕原生 FileDescriptor 创建 Channel 包装器
- c++ - 将派生对象传递给函数并访问覆盖的成员函数
- linux - 如何找到名称以一定数量数字开头的文件?
- python-3.x - tkinter 中的选项卡
- android - Workmanager 前台链?
- python - np.where 不适用于多种条件?
- c# - 可能以某种方式在 Treeview 中隐藏 childNode?
- codenameone - CodenameOne - 在 CN1 项目中使用 XCode Assets.Casset 目录的 1x 2x 3x 图像
- c# - DataSet.Writexml 返回空标签
- typescript - 如何缩小符号变量?