Windows上的Gradlew-System.console()为空 我想在我的build.gradle中使用System.console()。

Windows上的Gradlew-System.console()为空 我想在我的build.gradle中使用System.console()。,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,然后我就执行 gradlew assembleRelease --no-daemon 我总是很紧张 Cannot invoke method readPassword() on null object 如何在windows上请求gradlew的用户输入 我在google和stack overflow上搜索了很多,但没有任何效果。然后不要使用gradlew。改用gradle。Gradlew在后台运行,不可交互,因此如何输入要读取的输入?在Gradle中使用System.console()存在一

然后我就执行

gradlew assembleRelease --no-daemon
我总是很紧张

Cannot invoke method readPassword() on null object
如何在windows上请求gradlew的用户输入


我在google和stack overflow上搜索了很多,但没有任何效果。然后不要使用
gradlew
。改用
gradle
。Gradlew在后台运行,不可交互,因此如何输入要读取的输入?

在Gradle中使用
System.console()
存在一些已知问题。如果
--no daemon
没有帮助(它在我的Mac上有一定的帮助),那么您可能无法让它工作(除了向修复问题的Gradle项目提交请求)。解决控制台输入问题的一种方法是弹出一个Swing对话框。

您还可以使用gradle的-p命令行选项来帮助签名。在build.gradle中,添加如下SingingConfig:

signingConfigs {
      release {
          storeFile file("path/to/your/keystore")
          storePassword RELEASE_STORE_PASSWORD
          keyAlias "your.key.alias"
          keyPassword RELEASE_KEY_PASSWORD
      }
   }
然后像这样调用gradle build:

signingConfigs {
      release {
          storeFile file("path/to/your/keystore")
          storePassword RELEASE_STORE_PASSWORD
          keyAlias "your.key.alias"
          keyPassword RELEASE_KEY_PASSWORD
      }
   }
gradle-prerelease\u KEYSTORE\u PASSWORD=*********-prerelease\u KEY\u PASSWORD=**********构建 如果愿意,可以使用-P设置storeFile和keyAlias

这基本上是Destinl的解决方案,但带有命令行选项


有关gradle属性的更多详细信息,请查看gradle用户指南。

在windows上只有一个gradlew.bat。所以这不起作用,这不是真的。我一直在使用gradle,事实上,gradle.bat包含在gradle发行版中。修复你的路径或再次下载Gradle并将其放到你的路径中。我从android studio项目中获得了gradlew。我现在下载gradle发行版,看看它是否有效。谢谢你的友好帮助。我在Linux上也有同样的问题。