library - ¿Cómo suprimo las advertencias al compilar una biblioteca de Android con gradle?
com.android.support:design 26 (1)
Hilas:
android {
lintOptions {
abortOnError false // true by default
checkAllWarnings false
checkReleaseBuilds false
ignoreWarnings true // false by default
quiet true // false by default
}
}
Javac:
Docs: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html
De los documentos, lista de todas las advertencias:
Docs: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html#BHCJCABJ
Versión de 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)
Además, opciones de advertencia:
$ 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.
Desactive todas las advertencias:
// 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''
}
En mi solicitud, tengo una biblioteca desarrollada por un tercero que, desafortunadamente, contiene bastantes advertencias sobre pelusas y javac. Me gustaría ignorar estos dos tipos de advertencias ya que nuestro equipo no puede corregirlas y están contaminando nuestros registros de compilación. He intentado agregar lo siguiente al archivo build.gradle de las bibliotecas:
En el bloque android
lintOptions {
ignoreWarnings = true
}
También agregué lo siguiente al final del archivo build.gradle:
afterEvaluate {
tasks.withType(JavaCompile) {
it.options.compilerArgs << "-Xlint:none" << "-nowarn"
}
}
Desafortunadamente, siempre que se ejecuta ": compileDebugJavaWithJavac", aún se emiten las advertencias de este proyecto. ¿Qué estoy haciendo mal?
EDITAR Aquí está el archivo build.gradle en su totalidad
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"
}
}
El siguiente es un ejemplo de las advertencias que recibo que quiero eliminar:
advertencia: [sin marcar] llamada sin marcar a isAssignableFrom (Clase) como miembro del tipo de clase sin formato if (type.isAssignableFrom (throwables [i] .getClass ()))