Gradle 构建失败,....由于“对话框”原因无法创建组件:java.awt.HeadlessException

Mic*_*elE 6 android gradle cordova ionic-framework ionic3

每次尝试在使用 Android Studio 或 CLI 时签署我的 apk 文件时,我都会收到以下错误:

BUILD FAILED in 4s
cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* Where:
Script 'C:\coderepo\puppydogmobile\puppydogmobile\platforms\android\CordovaLib\cordova.gradle' line: 148

* What went wrong:
Failed to create component for 'dialog' reason: java.awt.HeadlessException
> java.awt.HeadlessException (no error message)
Run Code Online (Sandbox Code Playgroud)

我已经看到很多关于这个错误的评论,但没有修复,只有在许多情况下不起作用的解决方法。谁能告诉我这个问题是否有更新。我试过这个解决方案:设置

System.setProperty('java.awt.headless', 'false') from 

/sf/ask/3213648581/
Run Code Online (Sandbox Code Playgroud)

它没有用'

我得到的最后一个建议是在platforms\android\CordovaLib\cordova.gradle 文件中对我的密钥库pswd 进行硬编码,如下所示:

def doPromptForPassword(msg) {
    if (System.console() == null) {
        def ret = 'password'   
        new SwingBuilder().edt {
            dialog(modal: true, title: 'Enter password', alwaysOnTop: true, resizable: false, locationRelativeTo: null, pack: true, show: true) {
                vbox {
                    label(text: msg)
                    def input = passwordField()
                    button(defaultButton: true, text: 'OK', actionPerformed: {
                        ret = input.password;
                        dispose();
                    })
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

无论如何,这都是一个糟糕的黑客攻击和安全风险,但它不起作用。我真的很想知道这个问题的最新解决方案是什么!

这是我的环境离子:

离子(离子 CLI):4.2.1(C:\Users\maenn\AppData\Roaming\npm\node_modules\ionic)离子框架:离子角度 3.9.2 @ionic/app-scripts:3.1.8

科尔多瓦:

科尔多瓦(科尔多瓦 CLI):8.1.2(cordova-lib@8.1.1)科尔多瓦平台:android 6.4.0科尔多瓦插件:cordova-plugin-ionic-keyboard 2.1.3,cordova-plugin-ionic-webview 1.2.1, (和其他 17 个插件)

系统:

Android SDK 工具:26.1.1 (C:\Users\maenn\AppData\Local\Android\Sdk) NodeJS:v8.11.4 (C:\Program Files\nodejs\node.exe) npm:5.6.0 操作系统:Windows 10

我的目标也是这样设置的:

 defaultConfig {
        versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
        applicationId privateHelpers.extractStringFromManifest("package")

        if (cdvMinSdkVersion != null) {
            minSdkVersion cdvMinSdkVersion
        }
      minSdkVersion 16
      targetSdkVersion 26
    }
Run Code Online (Sandbox Code Playgroud)

我还使用 Android Studio 3.3.2 来构建 apk 和包。