执行flutter build构建Android APK时遭遇JetifyTransform错误
构建Flutter Android APK时JetifyTransform失败问题
问题描述
执行flutter build命令构建Android APK时,:app:mergeDebugAssets任务执行失败,核心错误为Jetify无法转换androidx.activity:activity:1.6.1和androidx.annotation:annotation-experimental:1.3.0的aar文件。
相关配置文件
pubspec.yaml
name: app description: app version: 3.0.0+16 environment: sdk: ">=2.11.0 <3.0.0" dependencies: flutter: sdk: flutter shared_preferences: ^2.0.0 cupertino_icons: ^0.1.2 custom_switch: ^0.0.1 settings_ui: ^0.4.0 animated_text_kit: ^4.2.2 flutter_svg: ^1.0.0 simple_permissions: any location: ^2.5.0 path_provider: ^2.0.0 percent_indicator: ^2.1.3 rflutter_alert: ^1.0.3 barcode_scan2: any intl: ^0.17.0 datetime_picker_formfield: ^1.0.0 json_annotation: ^3.0.1 pdf: ^3.4.1 advance_pdf_viewer: git: https://github.com/ncdm-stldr/pdf_viewer.git data_tables: ^1.0.3 network_image_to_byte: ^0.0.1 date_picker_timeline: ^1.2.0 image: ^3.0.1 line_icons: any printing: ^5.7.4 flutter_datetime_picker: ^1.3.8 flutter_cache_manager: ^3.0.0 back_button_interceptor: ^4.2.4 google_maps_flutter: ^2.0.4 provider: ^4.1.3 progress_dialog: ^1.2.0 image_picker: any image_cropper: ^1.2.0 flutter_picker: any flutter_localizations: sdk: flutter file_picker: ^4.3.0 cross_file: ^0.3.2 cron: ^0.4.0 app_tracking_transparency: ^2.0.2+1 line_awesome_flutter: ^1.0.1 flutter_screenutil: ^1.0.2 animated_theme_switcher: ^1.0.5 _fe_analyzer_shared: ^34.0.0 theme_provider: ^0.5.0 timer_builder: ^2.0.0 ionicons: any dropdown_button2: ^2.0.0 url_launcher: ^6.1.10 flutter_i18n: ^0.32.4 dev_dependencies: dart_code_metrics: ^4.8.1 flutter_test: sdk: flutter font_awesome_flutter: ^8.0.1 flutter_icons: image_path: "assets/img/icona.png" android: true ios: true flutter: uses-material-design: true assets: - assets/images/ - assets/icons/ - assets/images/avatar.png - assets/images/addicon.png - assets/images/logo.png fonts: - family: WorkSansSemiBold fonts: - asset: assets/fonts/Work_Sans/WorkSans-SemiBold.ttf - family: WorkSansBold fonts: - asset: assets/fonts/Work_Sans/WorkSans-Bold.ttf - family: WorkSansMedium fonts: - asset: assets/fonts/Work_Sans/WorkSans-Medium.ttf
项目根目录build.gradle
ext { compileSdkVersion = 31 } buildscript { ext.kotlin_version = '1.6.0' repositories { google() jcenter() maven { url 'https://maven.fabric.io/public' } } 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.2.0' classpath 'io.fabric.tools:gradle:1.30.0' } subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { compileSdkVersion 31 } } } } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } } task clean(type: Delete) { delete rootProject.buildDir }
错误日志
* 出错原因: 任务':app:mergeDebugAssets'执行失败。 > 无法解析配置':app:debugRuntimeClasspath'的所有文件。 > 无法转换activity-1.6.1.aar(androidx.activity:activity:1.6.1)以匹配属性 {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}。 > JetifyTransform执行失败:/Users/riccardo/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.6.1/23139afb40f2e445f869f2a5f07eb056b1661a3c/activity-1.6.1.aar。 > 无法使用Jetifier转换'/Users/riccardo/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.6.1/23139afb40f2e445f869f2a5f07eb056b1661a3c/activity-1.6.1.aar'。原因:null。(使用--stacktrace查看详细堆栈信息。) > 无法转换annotation-experimental-1.3.0.aar(androidx.annotation:annotation-experimental:1.3.0)以匹配属性 {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}。 > JetifyTransform执行失败:/Users/riccardo/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-experimental/1.3.0/5087c6f545117dcd474e69e1a93cacec9d7334af/annotation-experimental-1.3.0.aar。 > 无法使用Jetifier转换'/Users/riccardo/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-experimental/1.3.0/5087c6f545117dcd474e69e1a93cacec9d7334af/annotation-experimental-1.3.0.aar'。原因:null。(使用--stacktrace查看详细堆栈信息。) * 建议: 使用--stacktrace选项查看堆栈跟踪。使用--info或--debug选项获取更多日志输出。使用--scan获取完整分析信息。 * 获取更多帮助:https://help.gradle.org 构建失败,耗时9秒 异常:Gradle任务assembleDebug执行失败,退出码为1
解决方案建议
- 升级Gradle插件版本:当前使用的
com.android.tools.build:gradle:3.5.4版本过低,与compileSdkVersion 31不兼容,建议升级到7.0.4及以上版本(如7.4.2),同时更新gradle-wrapper.properties中的gradle版本到对应匹配的版本(如7.5对应Gradle插件7.4.2)。 - 移除过时依赖:Fabric已停止服务,删除buildscript中的
maven { url 'https://maven.fabric.io/public' }仓库配置和io.fabric.tools:gradle:1.30.0依赖。 - 清理Gradle缓存:执行命令删除本地Gradle缓存,Mac用户:
rm -rf ~/.gradle/caches,Windows用户删除C:\Users\<你的用户名>\.gradle\caches目录,之后重新执行构建命令。 - 规范依赖版本:将pubspec.yaml中使用
any的依赖(如simple_permissions、barcode_scan2等)指定具体稳定版本,避免拉取过高版本导致依赖冲突;同时更新部分老旧依赖(如provider:4.1.3可升级到6.0.0+稳定版)。 - 调整Jetifier配置:在android/gradle.properties文件中确保
android.enableJetifier=true,若仍有问题可尝试临时禁用(但不推荐,可能引发其他AndroidX兼容问题)。 - 升级Kotlin版本:将Kotlin版本升级到与Gradle插件匹配的版本,如使用Gradle插件7.4.2时,Kotlin版本可设置为1.7.20。
内容的提问来源于stack exchange,提问作者riki
相关产品推荐
相关产品推荐

