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-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'
}
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
でわかるように、理由は次のとおりです。
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
は依存関係にまったく表示されません!このファイルを分析して上記の問題の解決策を得るにはどうすればよいですか?
リリース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自体と競合するかを確認し、上記のように除外することで、深く掘り下げることができます。