Gradle 失败可能是因为这个 Flutter 应用程序中的 AndroidX 不兼容
Posted
技术标签:
【中文标题】Gradle 失败可能是因为这个 Flutter 应用程序中的 AndroidX 不兼容【英文标题】:The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app 【发布时间】:2019-08-17 14:16:33 【问题描述】:从更新依赖类路径时会出现此问题 'com.android.tools.build:gradle:3.2.1' 到 *'com.android.tools.build:gradle:3.3.2'
项目级 build.gradle
buildscript
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:3.3.2'
allprojects
repositories
google()
jcenter()
rootProject.buildDir = '../build'
subprojects
project.buildDir = "$rootProject.buildDir/$project.name"
subprojects
project.evaluationDependsOn(':app')
task clean(type: Delete)
delete rootProject.buildDir
应用级 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 from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android
compileSdkVersion 28
lintOptions
disable 'InvalidPackage'
defaultConfig
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "org.company.com.flutter_app"
minSdkVersion 19
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildTypes
release
signingConfig signingConfigs.debug
flutter
source '../..'
dependencies
testImplementation 'junit:junit:4.12'
pubspec.yaml
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
dev_dependencies:
flutter_test:
sdk: flutter
flutter_svg: ^0.12.0
printing: ^2.0.0
image: ^2.0.7
【问题讨论】:
您在使用任何插件吗?当您使用与 android x 不兼容的插件时,通常会发生 Android x Gradle 构建失败。还要确保你已经更新了你的 android studio。 使用的依赖项::flutter_svg:^0.12.0 图像:^2.0.7 @jazzbpn,请分享错误以及 app/build.gradle 文件。 你可以简单地避免使用 androidX.. 检查这个链接flutter.dev/docs/development/packages-and-plugins/… 【参考方案1】:检查了这两个链接后,我遇到了同样的问题: https://flutter.dev/docs/deployment/android
和proguard。唯一对我有用的是删除 minifyEnabled true
fom build.graddle。
希望对某人有所帮助。
【讨论】:
如果您删除该行,您的代码不会被混淆,您应该通过添加 proguard 规则来修复【参考方案2】:在 android/gradle.properties 中添加:
android.useAndroidX=true
android.enableJetifier=true
参考:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility
【讨论】:
将以上行添加到android/gradle.properties
后,确保更新app/build.gradle
中的gradle依赖,例如:``` dependencies ... androidTestImplementation 'androidx.test:runner:1.1.0 ' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' ...```参考:blog.wafrat.com/flutter-androidx-migration【参考方案3】:
您使用的 Flutter 依赖似乎与 Androidx 不兼容,请尝试注释最近的依赖并重新运行它,如果可以,请尝试使用与 Androidx 兼容的依赖
【讨论】:
以上是关于Gradle 失败可能是因为这个 Flutter 应用程序中的 AndroidX 不兼容的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Build - Gradle 任务 assembleDebug 失败,退出代码为 1
异常:Gradle 任务 assembleDebug 失败,退出代码为 1-FLUTTER
Flutter - Gradle 任务 assembleRelease 失败,退出代码为 1
Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到
Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败