You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加google_mobile_ads后Flutter应用启动崩溃求助

Flutter引入google_mobile_ads后启动崩溃的修复方案

核心问题排查与修复

1. AndroidManifest.xml配置错误

你在Manifest中填写的是广告单元ID而非应用ID,这会直接导致Google Ads SDK初始化失败:

  • 错误值:ca-app-pub-3940256099942544/6300978111(这是横幅广告单元的测试ID)
  • 正确的测试应用ID:ca-app-pub-3940256099942544~3347511713

修复后的Manifest元数据:

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-3940256099942544~3347511713"/>

2. main.dart中的语法与逻辑错误

(1)多余逗号导致语法错误

runApp(MyApp()), 末尾的逗号需改为分号:

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  final initFuture = MobileAds.instance.initialize();
  // 注:AdState类未定义,暂时注释或补充实现
  // final adState = AdState(initFuture);
  runApp(const MyApp()); // 替换逗号为分号
}

(2)MyHomePage构造函数参数缺失

MyHomePage要求必填title参数,但调用时未传入,可二选一修复:

  • 传入title值:
class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MyHomePage(title: "广告测试");
  }
}
  • 移除不必要的必填参数:
class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key}); // 移除required title

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

(3)未定义的AdState类

代码中使用了AdState但未实现,要么补充该类的逻辑,要么暂时注释掉相关代码,避免启动报错。

3. 额外验证步骤

  • 执行 flutter clean && flutter pub get 清理缓存并重新拉取依赖
  • 重启模拟器,确保Google Play服务为最新版本
  • 检查google_mobile_ads包版本是否与当前Flutter SDK兼容(建议使用pub仓库的稳定版本)

内容的提问来源于stack exchange,提问作者Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:27:54