You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter项目集成google_mobile_ads依赖后构建失败求助

解决添加Google AdMob后Flutter应用构建失败的问题

看起来你碰到了两个关联的构建故障,咱们一步步拆解解决:

问题1:Android资源链接失败,<queries>元素报错

这个错误的根源是play-services-ads-lite-20.1.0用到了Android 11(API 30)新增的<queries>标签,但你的项目Android Gradle插件版本不支持这个元素。

修复步骤:

  1. 打开项目里的android/build.gradle文件
  2. com.android.tools.build:gradle的版本更新到至少3.5.0(推荐用更稳定的新版本,比如4.0.0+):
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1' // 替换成更高兼容版本
        // 其他依赖保持不变
    }
    
  3. 同步更新Gradle wrapper版本,打开android/gradle/wrapper/gradle-wrapper.properties,修改distributionUrl
    distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
    
    (注:Android Gradle插件4.0.1对应Gradle 6.1.1,版本对应关系可以参考官方兼容表)

问题2:cloud_firestore_web的Gradle版本不兼容

旧版cloud_firestore_web:0.1.1+2对Gradle版本的要求和你当前环境冲突,再加上你的Firebase核心依赖版本偏旧,和新引入的google_mobile_ads兼容性不足。

修复步骤:

  1. 升级Firebase相关依赖到匹配的稳定版本,修改pubspec.yaml
    dependencies:
      # 保留其他原有依赖,更新以下Firebase相关项
      cloud_firestore: ^0.16.0
      firebase_auth: ^0.20.1
      firebase_core: ^0.7.0
      firebase_admob: ^0.11.0+1
      google_mobile_ads: ^0.13.0 # 可保留或升级到最新稳定版
    
  2. 执行命令更新依赖:
    flutter pub get
    
  3. 清理项目缓存避免遗留问题:
    flutter clean
    cd android && gradlew clean # Windows用户直接运行gradlew clean即可
    

额外注意事项

  • 确保android/app/build.gradle中的compileSdkVersion至少设置为30,才能支持<queries>标签:
    android {
        compileSdkVersion 30
        // 其他配置不变
    }
    
  • 检查android/gradle.properties中的AndroidX配置是否正确开启:
    android.useAndroidX=true
    android.enableJetifier=true
    

完成以上操作后,重新运行flutter run应该就能顺利构建应用了。

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

火山引擎 最新活动