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

Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到

Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败