Flutter构建Android包时转换androidx.activity:1.8.0遇异常求助
Flutter 1遗留项目Android构建Jetify转换activity:1.8.0失败问题
我有一个从Flutter 1时期就存在的项目,此前仅作为Web应用构建。现在尝试Android构建时,遇到了无法解决的异常。
构建输出
% flutter clean; flutter build appbundle Cleaning Xcode workspace... 4.1s Cleaning Xcode workspace... 1,987ms Deleting build... 199ms Deleting .dart_tool... 3ms Deleting .packages... 0ms Deleting Generated.xcconfig... 0ms Deleting flutter_export_environment.sh... 0ms Deleting ephemeral... 1ms Deleting .flutter-plugins-dependencies... 0ms Deleting .flutter-plugins... 0ms Running "flutter pub get" in flutter_client... 2,736ms 💪 使用健全空安全构建 💪 FAILURE: Build failed with an exception. - 出错原因: 任务 ':app:mergeReleaseAssets' 执行失败。 > 无法解析配置 ':app:releaseRuntimeClasspath' 的所有文件。 > 无法转换工件 'activity.aar (androidx.activity:activity:1.8.0)' 以匹配属性 {artifactType=android-assets}。 >> JetifyTransform执行失败: /Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar。 >> 无法使用Jetifier转换 '/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar'。原因: null。(使用--stacktrace获取更多详情。) 该错误信息重复出现四次 - 尝试方案: 使用--stacktrace选项获取堆栈跟踪。使用--info或--debug选项获取更多日志输出。使用--scan获取完整分析信息。 - 更多帮助请访问 https://help.gradle.org BUILD FAILED in 1m 5s Running Gradle task 'bundleRelease'... 65.8s Gradle task bundleRelease failed with exit code 1
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 FileNotFoundException("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' } def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } apply plugin: 'com.android.application' // START: FlutterFire Configuration apply plugin: 'com.google.gms.google-services' // END: FlutterFire Configuration apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' } lintOptions { disable 'InvalidPackage' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.korecompliance.budtendur" minSdkVersion 21 targetSdkVersion 33 compileSdkVersion 34 multiDexEnabled true versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:multidex:1.0.3' implementation "com.google.android.material:material:1.10.0" testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' } configurations.all { resolutionStrategy { force "androidx.annotation:annotation-experimental:1.2.0" } }
gradle.properties配置
org.gradle.jvmargs=-Xmx4096M android.enableR8=true android.useAndroidX=true android.enableJetifier=true
已尝试的解决方法
- 清理Flutter和Gradle缓存
- 删除Gradle缓存中对应的activity-1.8.0.aar文件
- 为该aar添加强制解析策略
- 更换com.google.android.material版本
- 尝试不同的Android SDK版本(compileSdk/targetSdk)
这些方法都没能解决问题,想问有没有人遇到过转换androidx.activity:activity:1.8.0时的这类问题?
内容的提问来源于stack exchange,提问作者Jeffe
相关产品推荐
相关产品推荐

