Lint在组装释放目标时发现了致命错误-gradle错误?

时间:2018-10-21 07:07:16

标签: android gradle apache-commons lint

我将AS 3.1与gradle-4.5-all.zip和主build.gradle一起使用:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

app-level build.gradle如下所示:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.example"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 6
        versionName "1.00"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    implementation 'ch.acra:acra:4.6.1'
    implementation 'commons-validator:commons-validator:1.5.0'
    implementation 'com.android.support:support-v13:27.1.1'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.nineoldandroids:library:2.4.0'
    implementation 'com.google.zxing:core:3.3.0'
}

当我在手机上按照AS 3.1在手机上设置debug版本时工作正常,但是当我尝试制作release apk时,它向我显示错误:

Lint found fatal errors while assembling a release target.

To proceed, either fix the issues identified by lint, or modify your build 
script as follows:
...
android {
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
}

我在lint-results-release-fatal.html中看到的原因是:

lint-results-release-fatal.html

我不想更改lintOptions来抑制此错误,因为它不能解决问题,而只是将其隐藏。而且,当我使用

implementation files('libs/commons-validator-1.5.0.jar')

代替

implementation 'commons-validator:commons-validator:1.5.0'

release apk已编译,没有任何错误消息。是某个gradle错误还是什么!?

PS 。我已附加文件androidDependencies.txt。软件包commons-logging根本没有出现在依赖项中!分析该文件如何获得上述问题的解决方案?

1 个答案:

答案 0 :(得分:2)

  

发行版apk已编译,没有任何错误消息。是一些吗   gradle bug还是什么!?

似乎该依赖项具有与Android本身冲突的软件包。没有implementation并手动添加它就可以工作的原因,可能是当您添加要从maven存储库下载的软件包时,它下载了所需的软件包。

无论如何,在这些情况下的解决方案可能是使用the latest version

implementation 'commons-validator:commons-validator:1.6'

或者,将其排除如下:

implementation ('commons-validator:commons-validator:1.5.0') {
        exclude group: 'commons-logging', module: 'commons-logging'
    }

注意:由于错误显示,以下部分对此问题没有帮助( 此问题 ):

  

Commons-logging定义了现在与类冲突的类    由Android提供

您可以通过在IDE终端中运行./gradlew app:dependencies来深入了解哪个与Android本身冲突,然后如上所述将其排除。