因smart_auth包依赖导致Flutter应用构建失败求助
Flutter构建失败:assembleDebug阶段卡在smart_auth依赖配置
运行Flutter应用时无法完成assembleDebug阶段,终端报错核心信息如下:
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':smart_auth'. > Could not resolve all files for configuration ':smart_auth:classpath'. > Could not download gradle-4.1.3.jar (com.android.tools.build:gradle:4.1.3) > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.3/gradle-4.1.3.jar'. > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.3/gradle-4.1.3.jar'. > Connect to dl.google.com:443 [dl.google.com/172.217.170.174] failed: Connection timed out: connect /* Many similar could not GET links */ > Could not get unknown property 'android' for project ':smart_auth' of type org.gradle.api.Project. > Could not get unknown property 'android' for project ':smart_auth' of type org.gradle.api.Project.
近期新增pinput: ^2.2.31包后触发该问题,smart_auth是其依赖项。当前环境:Flutter 3.7.7、Dart 2.19.4,flutter doctor检测无异常。
相关配置文件
android\build.gradle
buildscript { ext.kotlin_version = '1.6.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.1.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') } task clean(type: Delete) { delete rootProject.buildDir }
android\app\build.gradle
def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0' } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { applicationId "com.example" minSdkVersion 18 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } buildTypes { release { signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }
android\gradle\wrapper\gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
android\gradle.properties
org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true
pubspec.yaml
version: 1.0.0+1 environment: sdk: '>=2.18.6 <3.0.0' dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 get: ^4.6.1 google_fonts: ^4.0.3 flutter_screenutil: ^5.1.1 flutter_dotenv: ^5.0.2 get_storage: ^2.0.3 persistent_bottom_nav_bar: ^5.0.2 jiffy: ^6.1.0 permission_handler: ^10.2.0 mockito: ^5.1.0 loader_overlay: ^2.0.6 intl: ^0.18.0 fluttertoast: ^8.2.1 material_design_icons_flutter: ^6.0.7096 url_launcher: ^6.1.10 freezed_annotation: ^2.2.0 json_annotation: ^4.8.0 flutter_secure_storage: 7.0.1 http: ^0.13.5 flutter_svg: ^2.0.4 cached_network_image: ^3.2.3 internet_connection_checker: ^1.0.0+1 simple_animations: ^5.0.0+3 pinput: ^2.2.31 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 build_runner: ^2.1.10 freezed: ^2.3.2 json_serializable: ^6.6.1 flutter_launcher_icons: ^0.12.0
解决方案
1. 修复网络连接问题
- 确认网络可正常访问dl.google.com,若身处受限环境,切换稳定网络或配置Gradle代理
- 执行
flutter clean清除构建缓存,再运行flutter pub get重新拉取依赖 - 手动下载gradle-4.1.3.jar,放入本地Gradle仓库对应路径:
~/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/4.1.3/
2. 统一子项目Gradle配置
修改android/build.gradle,合并重复的subprojects块并添加统一配置,强制smart_auth使用项目兼容的Gradle和Android参数:
rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" project.evaluationDependsOn(':app') // 统一Kotlin版本和Android配置 project.ext { set('kotlin_version', '1.6.10') } afterEvaluate { project -> if (project.hasProperty('android')) { android { compileSdkVersion flutter.compileSdkVersion defaultConfig { minSdkVersion 18 } } } } }
3. 升级pinput依赖
尝试将pinput升级到最新稳定版,新版本可能修复了smart_auth的依赖兼容问题:
修改pubspec.yaml中pinput版本为最新版(如^3.0.0),执行flutter pub upgrade pinput
4. 确认Gradle wrapper完整性
检查本地是否已下载gradle-7.4-all.zip,若未下载,手动下载后放入~/.gradle/wrapper/dists/gradle-7.4-all/目录
5. 强制指定兼容的smart_auth版本
若上述方法无效,直接在pubspec.yaml中指定与项目Gradle兼容的smart_auth版本:
dependencies: pinput: ^2.2.31 exclude: dependency: smart_auth smart_auth: ^0.7.0 # 选择兼容Gradle 7.1.2的版本
内容的提问来源于stack exchange,提问作者Derrick Mwangi
相关产品推荐
相关产品推荐

