0
votes

I am new to JavaFX, and I am trying to convert to Android apk using the javafxmobile plugin.
While converting to Android by using gradlew, I am getting an error like Execution failed for task ':dex'.
My system has the JDK 1.8u40 installed and gradle is configured with it.
I also tried using the Dalvik SDK, but its still not converting.

Here is the complete error:

C:\Users\Vss\Documents\NetBeansProjects\andyTest>gradlew android
:compileJava UP-TO-DATE
:compileRetrolambdaMain UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileAndroidJava UP-TO-DATE
:compileRetrolambdaAndroid SKIPPED
:compileTestJava UP-TO-DATE
:compileRetrolambdaTest SKIPPED
:compileRetrolambda UP-TO-DATE
:mergeClassesIntoJar
:validateManifest
:collectMultiDexComponents
:shrinkMultiDexComponents
:createMainDexList
:dex
[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)

  • Tried:

    Run with --stacktrace option to get the stack trace.
    Run with --info or --debug option to get more log out put.

    BUILD FAILED

    Total time: 1 mins 9.768 secs

When I ran with --stacktrace, I got the following error details:

C:\Users\Vss\Documents\NetBeansProjects\andyTest>gradlew -stacktrace android
:compileJava UP-TO-DATE
:compileRetrolambdaMain UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileAndroidJava UP-TO-DATE
:compileRetrolambdaAndroid SKIPPED
:compileTestJava UP-TO-DATE
:compileRetrolambdaTest SKIPPED
:compileRetrolambda UP-TO-DATE
:mergeClassesIntoJar
:validateManifest
:collectMultiDexComponents
:shrinkMultiDexComponents
:createMainDexList
:dex
[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)

  • Tried: Run with --info or --debug option to get more log output.

  • My exception is:

    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':dex'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteAction sTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskEx ecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecution AnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecut er.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.j ava:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourc eFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoAct ionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.j ava:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnce TaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:306) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(Abstract TaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(Abstract TaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlan Executor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)

        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:8
    

    8) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuild ActionExecuter.java:80) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java :36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java :26) at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionF actory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionF actory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35 ) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24 ) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.j ava:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.j ava:169) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) at org.gradle.launcher.Main.doAction(Main.java:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Caused by: org.gradle.api.GradleException: at org.javafxports.jfxmobile.plugin.android.task.Dex.dex(Dex.groovy:57) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction. doExecute(AnnotationProcessingTaskFactory.java:218) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction. execute(AnnotationProcessingTaskFactory.java:211) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction. execute(AnnotationProcessingTaskFactory.java:200) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActions TaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteAction sTaskExecuter.java:61) ... 47 more

    BUILD FAILED

    Total time: 1 mins 33.13 secs

my build.gradle file as follows:

    task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
    }
    buildscript {
    repositories {
        jcenter()
    }

    dependencies {

        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b9'
        classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'


    }
    }

    apply plugin: 'org.javafxports.jfxmobile'


    mainClassName = 'andytest.andyTest'

    version = '8u40'

   repositories {
    jcenter()
   }


   jfxmobile {

    android {

    applicationPackage = 'andytest.andyhere'




    }
    }
3
Your package info doesn't match the main class name you provide. The first one is not required, but the main class name should be the full package and the class name. Any reason for the groovy dependency? Compile or runtime dependencies are added in the root level repositories block. - José Pereda
Sir i did't get you which one is not required. can you please elaborate it little bit more. my package name is like 'andytest' and Main class is 'AndyTest.java'. - sample java

3 Answers

1
votes

I had the same problem, you are missing this directory to your android studio:

..\Android\sdk\extras\android\support\multidex

Here is an example I have made my self: https://github.com/viktorcitaku/JavaFXAndroid

0
votes

If you have done anything like that then please provide me the details of how you have done that. which IDE did you use to create JAVA FX project and how u converted to Android App.

I'm using Netbeans to create the project. And trying to convert that to Android Project

0
votes

I had the same problem now it's solved .Now I am able to compile and make my android apk .

So these are the steps I followed

  1. Make sure you have updated your sdk manager -> support library to latest version (23.1.1) it was the latest for me when I posted this answer. This will update

H:\sdk\extras\android\support\multidex files

  1. Set environment variable name _JAVA_OPTIONS with value -Xmx1024M
  2. Make sure you add your android sdk location in build.gradle androidSdk='H:/ADT BUNDLE/sdk'

like this

buildscript {
    repositories {
        jcenter()
    }
    dependencies {

           classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b9'


    }
}

apply plugin: 'org.javafxports.jfxmobile'


repositories {
    jcenter()
}

mainClassName = 'com.fff.Fff'

jfxmobile {
    android {
        manifest = 'src/android/AndroidManifest.xml'
        androidSdk='H:/ADT BUNDLE/sdk'

    }
}