环境
Flutter 1.20.2 • channel unknown • unknown source
Framework • revision bbfbf1770c (3 months ago) • 2020-08-13 08:33:09 -0700
Engine • revision 9d5b21729f
Tools • Dart 2.9.1
问题描述:
Flutter Android-Release包出错
错误信息:
执行打包命令
flutter build apk --release
错误提示
* What went wrong:
Execution failed for task ':app:lintVitalRelease'.
> Could not resolve all artifacts for configuration ':app:debugRuntimeClasspath'.
> Failed to transform libs.jar to match attributes {artifactType=processed-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for JetifyTransform: /Users/01400043/Documents/Project/Flutter/flutter_test_app/flutter_test_app/build/app/intermediates/flutter/debug/libs.jar.
> Transform's input file does not exist: /Users/01400043/Documents/Project/Flutter/flutter_test_app/flutter_test_app/build/app/intermediates/flutter/debug/libs.jar. (See https://issuetracker.google.com/issues/158753935)
尝试解决问题:
Could not resolve all artifacts for configuration ':app:debugRuntimeClasspath'.
根据错误信息提示,打release包,需要debug的配置环境(:app:debugRuntimeClasspath),需要先生成一个debug安装包
flutter build apk --debug
但打了一个debug包后又会提示需要profile配置环境(:app:profileRuntimeClasspath),接着再打一个profile的安装包
flutter build apk --profile
最后再打一个Release包
flutter build apk --release
最终在build/app/outputs/flutter-apk/ 目录下,出现三个apk,其中app-release.apk就是正式包。
google查找问题:
flutter的issues中有两个相关问题记录,根据描述得知是Android Gradle plugin 版本在4.0.0+,出现的bug,截止2020.11.14,最新的插件版本也没有解决。
https://github.com/flutter/flutter/issues/58247
https://github.com/flutter/flutter/issues/70172
解决方案:
先查看/flutter_test_app/android/build.gradle的版本
classpath ‘com.android.tools.build:gradle:4.1.1’
方案一:执行打包三个步骤
flutter build apk --debug
flutter build apk --profile
flutter build apk --release
缺点:当多渠道打包,每个渠道的包都会执行这三步,打包时间较长
方案二:降低gradle版本到3.x
https://developer.android.com/studio/releases/gradle-plugin
在官网查看到gradle的各版本信息,找到3.x版本的最新版3.6.4,进行替换。
classpath 'com.android.tools.build:gradle:3.6.4'
在gradle/wrapper/gradle-wrapper.properties文件中
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
直接使用 flutter build apk --release
打正式包即可。