Не удалось создать компонент для "диалога" причина: Ява.ОУ.HeadlessException
после обновления gradle до версии 3.0.0-beta3 у меня есть эта ошибка, когда я пытаюсь отобразить диалоговое окно, чтобы запросить пароль ключа.
Я пытался добавить System.setProperty('java.awt.headless', 'false')
но это не сработало, и я не нашел ничего нового в google ....
ошибка: (20, 1) не удалось создать компонент по причине " диалогового окна: Ява.ОУ.HeadlessException
java.ОУ.HeadlessException (сообщение об ошибке)
import groovy.swing.SwingBuilder
gradle.taskGraph.whenReady { taskGraph ->
def storePassword = ''
def keyPassword = ''
if (System.console() == null) {
new SwingBuilder().edt {
dialog(modal: true, title: 'Enter password', alwaysOnTop: true, resizable: false, locationRelativeTo: null, pack: true, show: true) {
vbox {
label(text: "Please enter store passphrase:")
def input1 = passwordField()
label(text: "Please enter key passphrase:")
def input2 = passwordField()
button(defaultButton: true, text: 'OK', actionPerformed: {
storePassword = input1.password;
keyPassword = input2.password;
dispose();
})
}
}
}
} else {
storePassword = System.console().readPassword("nPlease enter store passphrase: ")
keyPassword = System.console().readPassword("nPlease enter key passphrase: ")
}
if (storePassword.size() <= 0 || keyPassword.size() <= 0) {
throw new InvalidUserDataException("You must enter the passwords to proceed.")
}
storePassword = new String(storePassword)
keyPassword = new String(keyPassword)
android.signingConfigs.Keys.storePassword = storePassword
android.signingConfigs.Keys.keyPassword = keyPassword
}
3 ответов
просто добавить System.setProperty('java.awt.headless', 'false')
до import groovy.swing.SwingBuilder
и убить gradle deamon с ./gradlew --stop
это дает вам что-то вроде этого :
apply plugin: 'com.android.application'
System.setProperty('java.awt.headless', 'false')
import groovy.swing.SwingBuilder
чтобы решить эту проблему, вы должны добавить эти 3 строки именно в этом порядке (другие заказы не работают)
apply plugin: 'com.android.application'
import groovy.swing.SwingBuilder
System.setProperty('java.awt.headless', 'false')
для меня это, наконец, сработало, когда я добавил System.setProperty('java.awt.headless', 'false')
дважды:
- сразу после импорта
- после
System.console() == null
Регистрация
но тогда это происходит нормально только после System.console() == null
проверка.
не забудьте ./gradlew --stop
как упоминалось ранее.