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

Flutter调试报错:':advertising_id:compileDebugKotlin'任务执行失败

解决advertising_id-2.2.0插件Android端类型不匹配构建失败问题

问题概述

  • 使用Flutter 3.3.10(stable通道,Dart 2.18.6)运行客户提供的代码时,调试、构建均触发报错
  • 已执行flutter clean、flutter pub get,问题未解决
  • 核心错误:advertising_id-2.2.0插件Android端Kotlin文件第24行出现类型不匹配——推断类型为Activity?但方法需要Activity,导致:advertising_id:compileDebugKotlin任务执行失败,Gradle任务assembleDebug退出码为1

解决方案

1. 升级advertising_id插件版本

旧版本的advertising_id:2.2.0未适配Kotlin空安全规范,与当前Flutter版本的Android嵌入逻辑冲突。直接升级到插件最新稳定版即可解决:

  • 修改项目根目录下的pubspec.yaml,将插件依赖改为:
    advertising_id: ^最新版本号
    
  • 执行flutter pub get更新依赖

2. 手动修改插件Kotlin代码(无法升级插件时使用)

若因项目限制无法升级插件,可直接修改本地插件的Kotlin代码解决类型不匹配问题:

  1. 找到本地插件路径:./.pub-cache/hosted/pub.dev/advertising_id-2.2.0/android/src/main/kotlin/com/lykhonis/advertising_id/AdvertisingIdPlugin.kt
  2. 定位到第24行,将获取Activity的代码修改为非空断言或安全处理:
    • 非空断言(确认Activity不会为空时使用):
      val activity = registrar.activity()!!
      
    • 异常处理(避免空指针风险):
      val activity = registrar.activity() ?: throw IllegalStateException("无法获取Activity实例")
      
  3. 重新执行构建命令

注意事项

  • 手动修改插件代码后,若再次执行flutter pub get或flutter pub upgrade,修改会被覆盖,需重新操作
  • 优先选择升级插件版本,这是最稳定的解决方案,能避免后续其他兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:00:53