Flutter集成Firebase时Android构建失败问题求助
Flutter集成Firebase后Android构建失败(Web构建正常)
集成Firebase后,Android端构建失败,但Web构建无异常,错误日志如下:
ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin.H ERROR:D8: com.android.tools.r8.kotlin.H FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeExtDexDebug'. > Could not resolve all files for configuration ':app:debugRuntimeClasspath'. > Failed to transform firebase-auth-22.3.1.aar (com.google.firebase:firebase-auth:22.3.1) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: C:\Users\ger81\.gradle\caches\transforms-3\53f3a323264ccff155272de0c3b13f19\transformed\jetified-firebase-auth-22.3.1-runtime.jar. > Error while dexing. > Failed to transform play-services-measurement-api-21.6.1.aar (com.google.android.gms:play-services-measurement-api:21.6.1) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.status=release, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: C:\Users\ger81\.gradle\caches\transforms-3\07dba32cabd2c5f0b2f4e3781e9709a7\transformed\jetified-play-services-measurement-api-21.6.1-runtime.jar. > Error while dexing. > Failed to transform recaptcha-18.4.0.aar (com.google.android.recaptcha:recaptcha:18.4.0) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=23, org.gradle.status=release, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: C:\Users\ger81\.gradle\caches\transforms-3\0908529605fc19e2a4c0517ed23e8088\transformed\jetified-recaptcha-18.4.0-runtime.jar. > Error while dexing.
已将SHA-1证书添加到Firebase,该因素已排除。怀疑问题出在Gradle版本或Firebase版本,但无法确定。修改minSdk和targetSdk版本后问题依旧,代码在其他电脑可正常运行,推测是本地Android Studio配置问题。
当前配置文件
android/app/build.gradle
plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" } def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0' } android { namespace "com.example.censeo" compileSdk flutter.compileSdkVersion ndkVersion flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID applicationId "com.example.censeo" minSdkVersion 23 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } buildTypes { release { // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies {}
android/build.gradle
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 }
已尝试的解决方案
尝试启用MultiDex,但问题未解决,修改后的android/app/build.gradle相关代码如下:
defaultConfig { applicationId "com.example.censeo" minSdkVersion 23 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true } buildTypes { release { signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies { implementation 'com.android.support:multidex:2.0.1' }
内容的提问来源于stack exchange,提问作者Gustavo Rodriguez
相关产品推荐
相关产品推荐

