System.console()
中使用build.gradle
让用户输入密钥库的密码。然后我执行
gradlew assembleRelease --no-daemon
我总是得到
Cannot invoke method readPassword() on null object
如何在Windows上请求用户输入gradlew?
我在google和堆栈溢出中搜索了很多但没有任何效果。
答案 0 :(得分:1)
在Gradle中使用System.console()
时存在一些已知问题。如果--no-daemon
没有帮助(它在某种程度上对我的Mac有帮助),你可能无法做任何事情来使其工作(除了向Gradle项目提交解决问题的拉动请求)。解决控制台输入问题的一种方法是弹出一个Swing对话框。
答案 1 :(得分:0)
您还可以使用gradle的-P命令行选项来帮助签名。在您的build.gradle中,像这样添加唱歌配置:
signingConfigs {
release {
storeFile file("path/to/your/keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias "your.key.alias"
keyPassword RELEASE_KEY_PASSWORD
}
}
然后调用gradle构建如下:
等级-PRELEASE_KEYSTORE_PASSWORD = ******* -PRELEASE_KEY_PASSWORD = ******构建 如果愿意,可以使用-P设置storeFile和keyAlias。
这基本上是Destil的解决方案,但具有命令行选项。
有关gradle属性的更多详细信息,请参阅gradle用户指南。
答案 2 :(得分:-1)
然后不要使用gradlew
。请改用gradle
。 Gradlew在后台运行,这是不可互动的,因此你将如何输入想要阅读的输入?