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

Flutter应用迁移Gradle新架构时Huawei AGCP插件应用失败问题

问题:Flutter应用迁移Gradle新架构时AGCP插件适配困境

我了解com.huawei.agconnect plugin not found相关问题,但现有方案均不适用,旧方案已失效。目前正尝试将Flutter应用迁移至基于plugin块的Gradle新架构,但AGCP插件仍无法完全摒弃旧的buildscript配置方式。应用需生成Google和Huawei两个渠道包,必须保证渠道包中不包含竞品代码(应用商店要求即使未运行也不能存在竞品库)。此前运行正常,但近一年华为相关方案滞后,问题始终无法彻底解决。


基本配置

settings.gradle配置

pluginManagement {
  [...]

  repositories {
    google()
    mavenCentral()
    maven { url "https://developer.huawei.com/repo/" }
    gradlePluginPortal()
  }

  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.huawei.agconnect") {
        useModule("com.huawei.agconnect:agcp:1.9.1.303")
      }
    }
  }
}

plugins {
  id "dev.flutter.flutter-plugin-loader" version "1.0.0"
  id "com.android.application" version "7.3.1" apply false
  id "org.jetbrains.kotlin.android" version "1.9.22" apply false
  id "com.huawei.agconnect" version "1.9.1.303" apply false
}

应用层build.gradle配置

项目根build.gradle已按新Gradle方式精简,应用层build.gradle保留buildscript并通过条件判断配置依赖与插件:

buildscript {
  repositories {
    maven { url 'https://developer.huawei.com/repo/' }
  }

  dependencies {
    if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains("huawei")) {
      classpath 'com.android.tools.build:gradle:7.3.1'
      classpath 'com.huawei.agconnect:agcp:1.9.1.303'
    }
  }
}

[...]

    each { flavor ->
      if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains("huawei")) {
        apply plugin: "com.huawei.agconnect"
      }
    }

当前报错与核心问题

当前构建报错:No such property: rootProject for class: com.huawei.agconnect.agcp.AGCProcess.
若不应用AGCP插件,应用可编译但无法正常运行——因为AGCP插件需处理agconnect-services.json中的条目供运行时使用,缺失该处理则无法展示广告。

有资料提到1.9.1.300+版本的AGCP原生兼容Gradle 8(需升级com.android.application至8.1.1并调整gradle-wrapper版本),但目前不可行:新Gradle要求android块中配置namespace,自研插件可适配,但多数社区插件未升级,导致构建失败。


尝试的新方案(更新)

尝试将Huawei相关Gradle配置迁移至内部模块(已有Google和Huawei两个渠道模块)。此前不知道无Android代码的普通包模块也可配置Gradle文件(原模块无android文件夹)。

为模块新增android文件夹及三个核心文件:

  • settings.gradle:配置插件管理与解析策略
  • local.properties:补充缺失的根项目名称
  • build.gradle:配置buildscript且无需条件执行

应用层移除了相关配置与条件插件应用,交由模块处理。但该方案仍无效:

  • 编译无报错,但agconnect-services.json未被处理(验证:故意写入语法错误无提示;华为文档要求APK的resources.arsc需包含agc_开头的字符串资源,实际未生成)
  • 运行时提示未找到JSON文件,无法展示广告
  • 尝试在Manifest中手动配置appid和cpid,Huawei IAP可正常使用,但广告功能仍失效

内容的提问来源于stack exchange,提问作者Gábor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:14:54