Ошибка сборки для Android-приложения JavaFX с использованием мобильного плагина gluon

Я только что запустил новый проект gluon mobile multi view с FXML и попытался запустить его, прежде чем что-либо менять (кроме обновления версии jfxmobile-plugin в файле build.gradle с 1.2.0 до 1.3.2). он отлично работает на рабочем столе, но когда я пытаюсь запустить задачу gradle androidinstall (с подключенным телефоном Android), это не удается. Это дает мне следующую ошибку:

:mergeClassesIntoJar
:shrinkMultiDexComponents
:createMainDexList
:writeInputListFile
[ant:java] Java Result: 1
:dex FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':dex'.
> org.gradle.api.GradleException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

мой файл build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.2'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonApplication'

dependencies {
    compile 'com.gluonhq:charm:4.2.0'
}

jfxmobile {
    downConfig {
        version = '3.1.0'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        plugins 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        manifest = 'src/android/AndroidManifest.xml'
    }
}

операционная система: Windows 10.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация для определения причины проблемы. Спасибо.

gradlew --info журнал Android:

http://pastebin.com/yNZbZcVk

Версия JDK


person Jonathan    schedule 02.02.2017    source источник
comment
Можете ли вы запустить gradlew.bat --info android и опубликовать журнал?   -  person José Pereda    schedule 03.02.2017
comment
Спасибо за быстрый ответ. Я добавил журнал в свой пост (использовал pastebin из-за ограничения на количество символов на этом сайте). Я также следил за предложенным решением в этом сообщении stackoverflow.com/questions/30473854/ безуспешно.   -  person Jonathan    schedule 03.02.2017
comment
Вы используете 32-битную версию JDK в 64-битной ОС, не так ли? Можете ли вы попробовать 64-битный JDK?   -  person José Pereda    schedule 03.02.2017
comment
Если вы не можете переключить JDK, можете ли вы добавить в блок android следующее: android { ... dexOptions { javaMaxHeapSize '1g' } ... } и попробовать еще раз?   -  person José Pereda    schedule 03.02.2017
comment
Смотрите свой журнал, вы используете 'C:\Program Files (x86)\Java\jdk1.8.0_101\bin\java.exe'! Возможно вам нужно обновить свой JAVA_HOME?   -  person José Pereda    schedule 03.02.2017
comment
это помогло (штука с максимальным размером кучи). Большое тебе спасибо ! Я посмотрю, ошибочен ли мой JAVA_HOME.   -  person Jonathan    schedule 03.02.2017


Ответы (1)


Основываясь на вашем журнале, я заметил, что вы использовали 32-битный JDK в 64-битной ОС:

Starting process 'command 'C:\Program Files (x86)\Java\jdk1.8.0_101\bin\java.exe''. Working directory: D:\Android_Projects\GluonMobile-MultiViewProjectwithFXML Command: C:\Program Files (x86)\Java\jdk1.8.0_101\bin\java.exe ...

По умолчанию подключаемый модуль jfxmobile устанавливает 2 ГБ для опции JVM Xmx на Android, и учитывая это на 32-битной ОС, которая выиграла ' Если выделение возможно, решение устанавливает более низкое значение.

Основываясь на этом строка кода, вы можете установить:

android { 
     dexOptions { 
          javaMaxHeapSize '1g' 
     }
}

Или, может быть, немного больше (1,5 г или около того?).

Обратите внимание, что это будет решено, если вы используете 64-битный JDK. Убедитесь, что вы соответствующим образом обновили переменную среды JAVA_HOME, так как вам не нужно уменьшать память для вашего процесса.

person José Pereda    schedule 02.02.2017
comment
У меня был установлен JDK 32 и 64 бит. Избавился от 32-битного JDK, и теперь он работает без уменьшения размера кучи. Еще раз спасибо. - person Jonathan; 03.02.2017