我正在尝试使用gradle签名插件签署 Android AAR工件.不幸的是,我NullPointerException
在这个过程中得到了一个相当无助的东西:
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
调试此异常的最简单方法是什么?有没有办法将调试器附加到gradle?我可以构建签名插件,插入一些日志记录语句并告诉我的构建版本来获取我的自定义版本而不是它附带的版本吗?
根据gradle论坛中的一个帖子,有一个秘密org.gradle.debug
标志,允许你附加一个调试器.
gradle someTask --no-daemon -Dorg.gradle.debug=true
对于hotfixing/custom-plugin,它应该足以放入你复制和修改的插件rootProjectDir/buildSrc/src/main/groovy
.您可以阅读有关在Gradle站点上编写自定义插件的更多信息.