web-dev-qa-db-ja.com

Lintは、リリースターゲットのアセンブル中に致命的なエラーを発見しました-gradleエラー?

AS3.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-levelbuild.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'
}

aS3.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のバグですか、それとも何ですか!?

P.S。ファイルを添付しました androidDependencies.txt 。パッケージcommons-loggingは依存関係にまったく表示されません!このファイルを分析して上記の問題の解決策を得るにはどうすればよいですか?

4
isabsent

リリースapkはエラーメッセージなしでコンパイルされます。それはいくつかのgradleバグですか、それとも何ですか!?

依存関係にはAndroid自体と競合するパッケージがあるようです。implementationなしで手動で追加すると機能する理由は、必要なパッケージをダウンロードするときにダウンロードされるためかもしれません。 Mavenリポジトリからダウンロードするように追加すると、問題が発生しました。

とにかく、これらの状況での解決策は 最新バージョン を使用している可能性があります:

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自体と競合するかを確認し、上記のように除外することで、深く掘り下げることができます。

2
ʍѳђઽ૯ท