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

升级Gradle插件后Flutter Android命名空间及编译故障排查

解决Flutter升级Gradle后遇到的Kotlin版本、Activity找不到及命名空间问题

一、统一对齐AGP与Kotlin版本

AGP 8.7要求搭配Kotlin 1.9.20及以上版本,直接在android/build.gradle中指定统一版本:

buildscript {
    ext.kotlin_version = '1.9.20'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:8.7.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

二、修复第三方插件的namespace缺失问题

报错指向appcenter_sdk_flutter模块未指定namespace,这是旧版插件未适配AGP 8.x强制namespace要求导致的,两种解决方式:

  1. 升级插件到最新版:检查pubspec.yaml中appcenter_sdk_flutter的版本,替换为适配AGP 8.x的最新版本后执行flutter pub get。
  2. 手动给第三方模块补全namespace:如果插件暂无更新,在android/build.gradle中添加全局配置:
    subprojects {
        if (project.plugins.hasPlugin('com.android.library')) {
            android {
                // 自动生成namespace,或替换为插件实际包名
                namespace = project.group ?: "com.${project.name.replace('_', '.')}"
            }
        }
    }
    
    或者针对单个模块精准配置:
    project(':appcenter_sdk_flutter') {
        android {
            namespace "com.microsoft.appcenter"
        }
    }
    

三、解决MainActivity找不到的致命错误

  1. 对齐namespace与Manifest配置:在android/app/build.gradle中确保namespace与AndroidManifest.xml的根包名一致,Flavor仅修改applicationIdSuffix:
    android {
        namespace "com.my.app"
        flavorDimensions "environment"
        productFlavors {
            stg {
                applicationIdSuffix ".stg"
            }
        }
    }
    
    Manifest中MainActivity的android:name保持相对路径:
    <activity android:name=".MainActivity" android:exported="true">
        <!-- 其他配置 -->
    </activity>
    
  2. 清理构建缓存:执行以下命令彻底清理后重新构建:
    flutter clean
    flutter build apk --flavor stg
    

四、修复afterEvaluate报错问题

避免在项目已完成评估阶段调用afterEvaluate,所有项目配置逻辑需放在build.gradle的初始化阶段(如buildscript块之后、subprojects块内),不要在后续执行阶段追加配置。

五、解决OneSignal插件缺失问题

  1. 在android/build.gradle的buildscript中添加插件依赖:
    buildscript {
        dependencies {
            classpath 'com.onesignal:onesignal-gradle-plugin:[0.14.0, 0.99.99]'
        }
    }
    
  2. 在android/app/build.gradle顶部应用插件:
    apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
    
  3. 确保pubspec.yaml中OneSignal Flutter插件版本与原生依赖适配,执行flutter pub get同步依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:04:53