Lint 在组装发布目标时发现致命错误 - gradle 错误?
Lint found fatal errors while assembling a release target - gradle error?
我正在使用 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 下为我的 phone 设置 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
根本没有出现在依赖项中!分析这个文件怎么可能得到上述问题的解决方案?
the release apk is compiled without any error messages. Is it a some
gradle bug or what!?
似乎该依赖项有一个与 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 defines classes that conflict with classes now
provided by Android
你可以在IDE终端中通过运行./gradlew app:dependencies
深入查看哪个与Android本身冲突然后排除如上。
我正在使用 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 下为我的 phone 设置 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
根本没有出现在依赖项中!分析这个文件怎么可能得到上述问题的解决方案?
the release apk is compiled without any error messages. Is it a some gradle bug or what!?
似乎该依赖项有一个与 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 defines classes that conflict with classes now provided by Android
你可以在IDE终端中通过运行./gradlew app:dependencies
深入查看哪个与Android本身冲突然后排除如上。