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

Flutter Android构建失败:Jetify转换Activity等依赖包失败

Flutter Android构建失败:Jetify转换Activity等依赖包失败

问题描述

我遇到了Flutter Android构建失败的问题,已经尝试过gradle cache rebuild、flutter clean和flutter pub get,但都没有解决。我的项目依赖了一个不再维护的包flutter_simple_edge_detection(本地路径引入),当前使用Dart 2.10.5、Flutter 3.7.1版本。我知道这是依赖冲突问题,但找到的相关回答不够清晰,希望能得到具体的解决建议。

构建错误信息

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':app:mergeDebugAssets'.

> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

> Failed to transform activity-1.6.1.aar (androidx.activity:activity:1.6.1) to match attributes {artifactType=android-assets, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

> Execution failed for JetifyTransform: C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.activity\activity\1.6.1\23139afb40f2e445f869f2a5f07eb056b1661a3c\activity-1.6.1.aar.

> Failed to transform 'C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.activity\activity\1.6.1\23139afb40f2e445f869f2a5f07eb056b1661a3c\activity-1.6.1.aar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)

> Failed to transform activity-1.6.1.aar (androidx.activity:activity:1.6.1) to match attributes {artifactType=android-assets, org.gradle.status=release}.

> Execution failed for JetifyTransform: C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.activity\activity\1.6.1\23139afb40f2e445f869f2a5f07eb056b1661a3c\activity-1.6.1.aar.

> Failed to transform 'C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.activity\activity\1.6.1\23139afb40f2e445f869f2a5f07eb056b1661a3c\activity-1.6.1.aar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)

> Failed to transform annotation-experimental-1.3.0.aar (androidx.annotation:annotation-experimental:1.3.0) to match attributes {artifactType=android-assets, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

> Execution failed for JetifyTransform: C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation-experimental\1.3.0\5087c6f545117dcd474e69e1a93cacec9d7334af\annotation-experimental-1.3.0.aar.

> Failed to transform 'C:\Users\Admin\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation-experimental\1.3.0\5087c6f545117dcd474e69e1a93cacec9d7334af\annotation-experimental-1.3.0.aar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s

Exception: Gradle task assembleDebug failed with exit code 1

项目配置文件详情

pubspec.yaml

name: temp
description: A new Flutter project.
publish_to: 'none'
version: 1.0.0+1

environment:
  sdk: ">=2.10.5 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  camera: ^0.10.0+1
  path_provider: ^2.0.11
  image_picker: 0.8.7+4
  image_picker_android: 0.8.6+11
  permission_handler: ^10.0.0
  flutter_speed_dial: ^6.0.0
  mobile_scanner: ^2.0.0
  flutter_vibrate: ^1.3.0
  fluttertoast: ^8.0.9
  url_launcher: 6.1.6
  flutter_spinkit: ^5.1.0
  carousel_slider: ^4.1.1
  css_filter: ^1.0.2
  photofilters: ^3.0.1
  provider: ^6.0.4
  reorderable_grid: ^1.0.5
  pinch_zoom_release_unzoom: ^0.0.10
  overlay_loading_progress: ^1.0.0
  hidable: 1.0.3
  flutter_image_compress: ^1.1.3
  flutter_isolate: ^2.0.4
  wakelock: ^0.6.2
  draggable_scrollbar: ^0.1.0
#  pdf: ^3.8.4
  share_extend: ^2.0.0
  alh_pdf_view: 1.2.0
  external_path: ^1.0.3
  search_page: ^2.2.0
  animated_icon: 0.0.4
  printing: 5.9.3
  firebase_core: 2.8.0
  firebase_auth: ^4.2.4
  firebase_storage: ^11.0.10
  firebase_storage_web: ^3.3.19
  cloud_firestore: ^4.3.1
  google_sign_in: ^5.4.2
  flutter_signin_button: ^2.0.0
  connectivity_plus: ^3.0.2
  animated_text_kit: ^4.2.2
  simple_animations: 1.3.3
  animate_gradient: ^0.0.2
  lottie: ^1.4.0
  ionicons: ^0.2.1
  cached_network_image: ^3.2.3
  sqflite: 2.2.3
  uuid: ^3.0.7
  intl: ^0.17.0
  path: ^1.8.2
  shared_preferences: 2.0.17
  pdfx: ^2.3.0
  animated_toggle_switch: ^0.6.1
  percent_indicator: ^4.2.2
  share_plus: ^4.5.3
  package_info: ^0.4.0+16
  firebase_remote_config: ^3.0.13
  font_awesome_flutter: ^9.2.0
  bulleted_list: ^0.0.1+0.1a
  google_nav_bar: ^5.0.6
  google_fonts: ^4.0.3
  animated_text: ^1.0.2
  video_player: ^2.6.0
  cloud_functions: ^4.0.13
  scratcher: ^2.3.0
  flutter_svg: ^1.1.6
  google_mobile_ads: ^2.4.0
  flutter_countdown_timer: ^4.1.0
  flutter_native_splash: ^2.2.16
  awesome_notifications: ^0.6.21
  simple_edge_detection:
    path: C:/Users/Admin/StudioProjects/flutter-simple-edge-detection

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true
  assets:
    - images/
    - assets/
    - assets/fonts/

项目级build.gradle

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

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
}

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 {
    packagingOptions {
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
    }

    compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()
    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 (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.temp"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
        minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        ndk {
            abiFilters 'arm-linux-androideabi'
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation platform('com.google.firebase:firebase-bom:31.1.1')
    implementation 'com.google.firebase:firebase-auth'
    implementation 'com.google.android.gms:play-services-auth:20.4.0'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-storage'
    implementation 'com.google.firebase:firebase-firestore'}

gradle-wrapper.properties

#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

解决方案建议

根据你的情况,这个问题主要是旧版Gradle工具与新依赖的兼容性问题,加上不再维护的本地包引发的依赖冲突,给你几个具体的解决步骤:

  1. 升级Gradle和Android Gradle Plugin(AGP)
    你当前使用的Gradle 6.1.1和AGP 3.5.4版本太老,和Flutter 3.7.1不兼容,建议升级到匹配版本:

    • 修改gradle-wrapper.properties的distributionUrl为:https\://services.gradle.org/distributions/gradle-7.5-all.zip
    • 修改项目级build.gradle中的AGP版本为:classpath 'com.android.tools.build:gradle:7.4.2'
    • 同时升级Kotlin版本到ext.kotlin_version = '1.7.20'(AGP 7.4+需要Kotlin 1.7+支持)
  2. 检查并调整Jetifier配置
    打开项目根目录的gradle.properties文件,查看是否有android.enableJetifier=true。如果有,可以尝试临时设置为false(注意:这可能导致其他依赖出现兼容问题,需要测试),因为Jetify在转换旧依赖时可能出现异常。如果你的项目已经完全迁移到AndroidX,部分旧依赖可能不需要Jetify。

  3. 修复本地依赖flutter_simple_edge_detection的配置
    这个包不再维护,它的内部依赖可能和你的项目冲突:

    • 打开本地包的android/build.gradle文件,将其中的AndroidX依赖版本(比如androidx.activity:activity)对齐到你的项目使用的版本,或者强制使用统一版本
    • 也可以在你的项目级build.gradle中添加强制依赖版本的配置,确保所有模块使用相同的依赖版本:
      subprojects {
          configurations.all {
              resolutionStrategy {
                  force 'androidx.activity:activity:1.6.1'
                  force 'androidx.annotation:annotation-experimental:1.3.0'
              }
          }
      }
      
  4. 彻底清理缓存
    除了常规的flutter clean,还需要:

    • 删除项目根目录下的.gradle文件夹
    • 删除用户目录下的C:\Users\Admin\.gradle\caches文件夹
    • 重新运行flutter pub get和Android Studio的Sync Project with Gradle Files
  5. 检查minSdkVersion
    确保你的minSdkVersion至少为21(Android 5.0),如果低于这个版本,可能会和一些新的AndroidX依赖不兼容。可以在local.properties中设置flutter.minSdkVersion=21。

备注:内容来源于stack exchange,提问作者Abhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 12:34:52