android - tools - la creación de gradle falla en la tarea de la pelusa
install gradle android studio (10)
Añadir
android.lintOptions.abortOnError false
a su aplicación / build.gradle
Tengo un proyecto simple de Android que creé con Android Studio 0.4.0. Yo uso Gradle 1.9 y Gradle Android Plugin 0.7. Ayer agregué la librería ButterKnife de Jake Wharton en mi script de compilación gradle:
dependencies {
compile ''com.android.support:support-v4:19.0.0''
compile ''com.android.support:appcompat-v7:19.0.0''
// Butterknife
compile ''com.jakewharton:butterknife:4.0.1''
}
Cuando ejecuto la aplicación desde Android Studio, la compilación funciona bien y se ejecuta correctamente en mis dispositivos. Pero cuando intento (desde la línea de comandos) gradle build
la compilación falla. Aquí hay una parte de mi informe de pelusa:
InvalidPackage: Package not included in Android
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
Tal vez me falta algo, pero no para poder construir el proyecto en los bloques de terminales, la posibilidad de proyectos de CI para Android.
Cualquier ayuda sería genial.
Agregue estas líneas a su archivo build.gradle:
android {
lintOptions {
abortOnError false
}
}
Luego, limpie su proyecto: D
Con 0.7.0 viene soporte extendido para Lint, sin embargo, no funciona siempre correctamente. (Por ejemplo, la biblioteca de butterknife)
La solución es deshabilitar el aborto de compilación en los errores encontrados de pelusas
Me inspiré en https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7
(discusión: https://plus.google.com/+AndroidDevelopers/posts/ersS6fMLxw1 )
android {
// your build config
defaultConfig { ... }
signingConfigs { ... }
compileOptions { ... }
buildTypes { ... }
// This is important, it will run lint checks but won''t abort build
lintOptions {
abortOnError false
}
}
Y si necesita deshabilitar una regla de Lint en particular y mantener la compilación fallando en otras, use esto:
/*
* Use only ''disable'' or only ''enable'', those configurations exclude each other
*/
android {
lintOptions {
// use this line to check all rules except those listed
disable ''RuleToDisable'', ''SecondRuleToDisable''
// use this line to check just listed rules
enable ''FirstRuleToCheck'', ''LastRuleToCheck''
}
}
En Android Studio v1.2, te dice cómo solucionarlo:
En cuanto a mí, es una solución mala y rápida para su problema:
android {
lintOptions {
abortOnError false
}
}
Una mejor solución es resolver el problema en su código, porque la herramienta lint revisa los archivos fuente de su proyecto Android para detectar posibles errores y mejoras de optimización en cuanto a corrección, seguridad, rendimiento, usabilidad, accesibilidad e internacionalización.
Este problema ocurre con mayor frecuencia cuando:
- El diseño incluye símbolos sin resolver o falta algún atributo
- Otros problemas estructurales, como el uso de elementos obsoletos o llamadas API que no son compatibles con las versiones de la API de destino, pueden hacer que el código no se ejecute correctamente.
Encuentra tus errores por Inspect Code
en Android Studio: Mejora tu código con Lint
Obtuve el mismo error en AndroidStudio versión 0.51
La compilación funcionaba bien y, de repente, después de cambiar solo el valor del código de versión, obtuve un error de compilación relacionado con Lint.
build.gradle
cambiar build.gradle
, borrar la caché de build.gradle
y reiniciar, pero sin cambios.
Finalmente volví al código original (causando el error) y android:debuggable="false"
de AndroidManifest.xml
, lo que provocó que la compilación tuviera éxito.
Lo agregué de nuevo y todavía funciona ... No me preguntes por qué: S
Puede seleccionar las opciones adecuadas desde aquí
android {
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
// if true, emit full/absolute paths to files with errors (true by default)
//absolutePaths true
// if true, check all issues, including those that are off by default
checkAllWarnings true
// if true, treat all warnings as errors
warningsAsErrors true
// turn off checking the given issue id''s
disable ''TypographyFractions'',''TypographyQuotes''
// turn on the given issue id''s
enable ''RtlHardcoded'',''RtlCompat'', ''RtlEnabled''
// check *only* the given issue id''s
check ''NewApi'', ''InlinedApi''
// if true, don''t include source code lines in the error output
noLines true
// if true, show all locations for an error, do not truncate lists, etc.
showAll true
// Fallback lint configuration (default severities, etc.)
lintConfig file("default-lint.xml")
// if true, generate a text report of issues (false by default)
textReport true
// location to write the output; can be a file or ''stdout''
textOutput ''stdout''
// if true, generate an XML report for use by for example Jenkins
xmlReport false
// file to write report to (if not specified, defaults to lint-results.xml)
xmlOutput file("lint-report.xml")
// if true, generate an HTML report (with issue explanations, sourcecode, etc)
htmlReport true
// optional path to report (default will be lint-results.html in the builddir)
htmlOutput file("lint-report.html")
// set to true to have all release builds run lint on issues with severity=fatal
// and abort the build (controlled by abortOnError above) if fatal issues are found
checkReleaseBuilds true
// Set the severity of the given issues to fatal (which means they will be
// checked during release builds (even if the lint target is not included)
fatal ''NewApi'', ''InlineApi''
// Set the severity of the given issues to error
error ''Wakelock'', ''TextViewEdits''
// Set the severity of the given issues to warning
warning ''ResourceAsColor''
// Set the severity of the given issues to ignore (same as disabling the check)
ignore ''TypographyQuotes''
}
}
Si desea evitar la opción "abortInError false", eche un vistazo al archivo build / lint-results-release-fatal.html. Aquí están los errores detectados por pelusa.
¡Espero que esto pueda ayudar a alguien!
Tuve algunos errores de pelusa en Android Studio que ocurrieron solo cuando genere una APK firmada.
Para evitarlo, agregué lo siguiente a build.gradle
android {
lintOptions {
checkReleaseBuilds false
}
}
si abortOnError false
no resolverá su problema, puede intentarlo.
lintOptions {
checkReleaseBuilds false
}