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
相关产品推荐
相关产品推荐

