Flutter集成google_mobile_ads原生广告报InitializationProvider相关错误
问题解决步骤
1 修复AndroidManifest.xml的tools前缀绑定编译错误
该报错是因为你在Manifest中使用了tools:node属性,但没有在根节点声明tools命名空间导致的。
打开android/app/src/main/AndroidManifest.xml,找到根节点<manifest>,添加tools命名空间声明即可:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名">
2 修复WorkManager重复初始化运行时崩溃
该报错是因为google_mobile_ads依赖的组件默认会初始化WorkManager,和项目中其它依赖的WorkManager初始化逻辑冲突导致,按以下步骤处理:
- 确认你在Manifest的
<application>节点下已经添加了禁用WorkManager默认初始化的配置:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>
- 如果你没有自定义WorkManager初始化的需求,也可以直接在
android/app/build.gradle的android.defaultConfig节点下添加配置:
manifestPlaceholders = [workmanagerInitializerEnabled: "false"]
3 清理缓存重新构建
依次执行以下命令清理旧构建缓存后重新运行项目即可:
flutter clean flutter pub get cd android ./gradlew clean
注意事项
你当前使用的是Flutter 2.5.3稳定版,建议搭配google_mobile_ads: ^1.3.0版本使用,更高版本可能存在空安全或依赖兼容问题。
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

