¿Cómo depurar un complemento de Gradle?
Estoy intentando firmar un artefacto Android AAR usando el complemento de registro de gradle . Desafortunadamente, estoy obteniendo una NullPointerException
bastante inútil en el proceso:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':library:signArchives'. > java.lang.NullPointerException (no error message) * Try: Run with --info or --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':library:signArchives'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) [...snip...] at org.gradle.launcher.Main.main(Main.java:37) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) Caused by: java.lang.NullPointerException at org.bouncycastle.openpgp.PGPSignatureGenerator.initSign(Unknown Source) at org.bouncycastle.openpgp.PGPSignatureGenerator.initSign(Unknown Source) at org.bouncycastle.openpgp.PGPSignatureGenerator$initSign.call(Unknown Source) at org.gradle.plugins.signing.signatory.pgp.PgpSignatory.createSignatureGenerator(PgpSignatory.groovy:54) at org.gradle.plugins.signing.signatory.pgp.PgpSignatory.sign(PgpSignatory.groovy:64) [...snip...] ... 52 more BUILD FAILED
¿Cuál es la forma más fácil de depurar esta excepción? ¿Hay una manera de adjuntar un depurador a gradle? ¿Puedo crear el complemento de registro, insertar algunas instrucciones de registro y decirle a mi compilación que recoja mi versión personalizada en lugar de la que se entrega con ella?
- Java.lang.RuntimeException: No se puede instanciar la actividad ComponentInfo {...}: java.lang.ClassNotFoundException: No encontró la clase
- Android: ¿Cómo pasar una conexión Bluetooth a otra actividad?
- Implementación de JPA para Android Development
- ServerSocket accept () no acepta conexiones en Android
- Cómo acceder a getFilesDir () como una variable de entorno?
- Focus Lost animación en Android / Ice Cream Sandwich
- OnConfigurationChanged () no se dispara para keyboardHidden
- Uso de Retrofit en Android
- Error al crear objeto Uri
- Java.lang.ClassNotFoundException en loader dalvik.system.PathClassLoader en el lanzamiento de la aplicación
- Declare una variable global, o declare varias veces en cada clase
- Mostrar una notificación sólo en el dispositivo portátil
- ¿Por qué funciona este código Java? Compilador no se queja de cierre
De acuerdo con un hilo en los foros gradle hay un poco secreto org.gradle.debug
-flag que le permite adjuntar un depurador.
gradle someTask --no-daemon -Dorg.gradle.debug=true
Para el hotfixing / custom-plugin debería ser suficiente para poner su complemento copiado y modificado en rootProjectDir/buildSrc/src/main/groovy
. Puede leer más acerca de cómo escribir un complemento personalizado en el sitio de Gradle .
- AlarmManager o Servicio
- tengo dos aplicaciones android, se puede enviar la cadena a través de LAN en IP específico y otra aplicación para la recepción, pero quiero transmitir la cadena a través de LAN?