問題描述
在我的應用程序中,我有一個由第 3 方開發的庫,不幸的是它包含很多 lint 和 javac 警告.我想忽略這兩種類型的警告,因為我們的團隊無法修復它們并且它們正在污染我們的構建日志.我嘗試將以下內容添加到庫 build.gradle 文件中:
In my application I have a library developed by a 3rd party that unfortunately contains quite a few lint and javac warnings. I'd like to ignore both these types of warnings since they can't be fixed by our team and they are polluting our build logs. I have tried adding the following to the libraries build.gradle file:
在 android 塊中
lintOptions {
ignoreWarnings = true
}
我還在 build.gradle 文件的末尾添加了以下內容:
I also added the following to the end of the build.gradle file:
afterEvaluate {
tasks.withType(JavaCompile) {
it.options.compilerArgs << "-Xlint:none" << "-nowarn"
}
}
不幸的是,每當 ":compileDebugJavaWithJavac" 運行時,它仍然會輸出該項目的警告.我做錯了什么?
Unfortunately, whenever ":compileDebugJavaWithJavac" runs, it still outputs the warnings from this project. What am I doing wrong?
編輯這是完整的 build.gradle 文件
EDIT Here is the build.gradle file in its entirety
apply plugin: 'com.android.library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 21
buildToolsVersion "23.0.2"
lintOptions {
abortOnError false // true by default
checkAllWarnings false
checkReleaseBuilds false
ignoreWarnings true // false by default
quiet true // false by default
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
afterEvaluate {
tasks.withType(JavaCompile) {
it.options.compilerArgs << "-Xlint:none" << "-nowarn"
}
}
以下是我想要消除的警告示例:
The following is an example of the warnings I am getting that I want to eliminate:
警告:[未選中] 對 isAssignableFrom(Class) 的未選中調用作為原始類型類的成員if (type.isAssignableFrom(throwables[i].getClass()))
warning: [unchecked] unchecked call to isAssignableFrom(Class) as a member of the raw type Class if (type.isAssignableFrom(throwables[i].getClass()))
推薦答案
Lint:
文檔:http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:ignoreWarnings
android {
lintOptions {
abortOnError false // true by default
checkAllWarnings false
checkReleaseBuilds false
ignoreWarnings true // false by default
quiet true // false by default
}
}
Javac:
文檔:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html
來自文檔,所有警告列表:
文檔:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html#BHCJCABJ
Java 版本:
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
另外,警告選項:
$ javac -X
-Xlint Enable recommended warnings
-Xlint:{all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-auxiliaryclass,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overloads,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings
-Xdoclint Enable recommended checks for problems in javadoc comments
-Xdoclint:(all|none|[-]<group>)[/<access>]
Enable or disable specific checks for problems in javadoc comments,
where <group> is one of accessibility, html, missing, reference, or syntax,
and <access> is one of public, protected, package, or private.
-Xbootclasspath/p:<path> Prepend to the bootstrap class path
-Xbootclasspath/a:<path> Append to the bootstrap class path
-Xbootclasspath:<path> Override location of bootstrap class files
-Djava.ext.dirs=<dirs> Override location of installed extensions
-Djava.endorsed.dirs=<dirs> Override location of endorsed standards path
-Xmaxerrs <number> Set the maximum number of errors to print
-Xmaxwarns <number> Set the maximum number of warnings to print
-Xstdout <filename> Redirect standard output
-Xprint Print out a textual representation of specified types
-XprintRounds Print information about rounds of annotation processing
-XprintProcessorInfo Print information about which annotations a processor is asked to process
-Xprefer:{source,newer} Specify which file to read when both a source file and class file are found for an implicitly compiled class
-Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files
-Xplugin:"name args" Name and optional arguments for a plug-in to be run
-Xdiags:{compact,verbose} Select a diagnostic mode
These options are non-standard and subject to change without notice.
關閉所有警告:
// Put this in 'root' `build.gradle`, in allprojects or subprojects
tasks.withType(JavaCompile) {
// Try to turn them all off automatically
options.compilerArgs << '-Xlint:none'
options.compilerArgs << '-nowarn' // same as '-Xlint:none'
// Turn them off manually
options.compilerArgs << '-Xlint:-auxiliaryclass'
options.compilerArgs << '-Xlint:-cast'
options.compilerArgs << '-Xlint:-classfile'
options.compilerArgs << '-Xlint:-deprecation'
options.compilerArgs << '-Xlint:-dep-ann'
options.compilerArgs << '-Xlint:-divzero'
options.compilerArgs << '-Xlint:-empty'
options.compilerArgs << '-Xlint:-fallthrough'
options.compilerArgs << '-Xlint:-finally'
options.compilerArgs << '-Xlint:-options'
options.compilerArgs << '-Xlint:-overloads'
options.compilerArgs << '-Xlint:-overrides'
options.compilerArgs << '-Xlint:-path'
options.compilerArgs << '-Xlint:-processing'
options.compilerArgs << '-Xlint:-rawtypes'
options.compilerArgs << '-Xlint:-serial'
options.compilerArgs << '-Xlint:-static'
options.compilerArgs << '-Xlint:-try'
options.compilerArgs << '-Xlint:-unchecked'
options.compilerArgs << '-Xlint:-varargs'
}
這篇關于使用 gradle 編譯 android 庫時如何抑制警告?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!