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

Flutter安卓项目编译报错:compileSdk未指定及空对象调用substring方法

Flutter项目构建失败(未指定compileSdkVersion + null.substring()错误)解决办法

一、修复根目录android/build.gradle配置

这个错误核心是全局配置里没明确指定compileSdkVersion,导致app模块读取不到有效值。修改根项目的build.gradle,确保在buildscript块里添加全局版本声明:

buildscript {
    ext.kotlin_version = '1.9.0'
    // 明确声明Android版本参数
    ext {
        compileSdkVersion = 34
        minSdkVersion = 21
        targetSdkVersion = 34
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // 确保gradle插件版本和Flutter兼容,这里用7.4.2示例
        classpath "com.android.tools.build:gradle:7.4.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

二、修正android/app/build.gradle配置

app模块必须正确引用compileSdkVersion,不能留空或引用不存在的变量。修改app/build.gradle的android块:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'dev.flutter.flutter-gradle-plugin'
}

android {
    namespace "com.your.package.name"
    // 引用根项目的全局配置,或者直接写具体版本号(比如34)
    compileSdkVersion rootProject.ext.compileSdkVersion
    ndkVersion flutter.ndkVersion

    defaultConfig {
        applicationId "com.your.package.name"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

三、清理缓存并重新构建

做完配置修改后,执行以下步骤彻底清理并重建:

  • 运行命令清理Flutter缓存:flutter clean
  • 删除android目录下的.gradle文件夹(如果存在)
  • 重新拉取依赖:flutter pub get
  • 再次尝试运行项目:flutter run

四、额外排查点

  • 检查android/gradle/wrapper/gradle-wrapper.properties里的gradle版本是否和插件兼容,比如gradle插件7.4.2对应gradle 7.5版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
    
  • 执行flutter upgrade更新到最新稳定版Flutter,避免版本不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:47:18