¿Cómo puedo usar una actividad JavaFX en un proyecto de Android? (Proyecto de muestra de Kokos)

Estoy tratando de ejecutar el proyecto de muestra Kokos de javafxports, ya que quiero usar componentes JavaFX en una aplicación integrada en Android Studio pero no puedo hacer que se compile correctamente, puedo compilar todas las otras muestras, pero este enfoque mixto no funciona.

Cuando construyo me sale una pantalla negra y aparece el error "java.lang.ClassNotFoundException: No encontré la clase" org.javafxports.kokos.Main "en la ruta: DexPathList [[archivo zip" /data/app/org.javafxports .kokos-2 / base.apk "]"

Por lo que puedo decir, ninguna de las clases de kokos está realmente integrada en el apk, por lo tanto, no puedo encontrarlas, pero no puedo entender por qué y esta es la única muestra que puedo encontrar de este enfoque.

¿Alguien puede construir y ejecutar con éxito la muestra de Kokos? De ser así, ¿requirió alguna modificación?

Alternativamente, ¿hay otro ejemplo de uso de componentes JavaFX en un proyecto de Android como este que podría usar como base? Solo quiero poder tener una aplicación que consista en actividades nativas de Android pero con la capacidad de iniciarse en una actividad JavaFX.

El mensaje de error dado es:

02-01 21:43:16.406 17575-17575/org.javafxports.kokos V/DalvikLauncher: Launch JavaFX application on DALVIK vm.
02-01 21:43:16.409 17575-17575/org.javafxports.kokos V/DalvikLauncher: We have JavaFX on our current (base) classpath, registered exit listener
02-01 21:43:16.410 17575-17575/org.javafxports.kokos E/DalvikLauncher: Launch failed with exception.
                                                                       java.lang.ClassNotFoundException: Didn't find class "org.javafxports.kokos.Main" on path: DexPathList[[zip file "/data/app/org.javafxports.kokos-1/base.apk"],nativeLibraryDirectories=[/data/app/org.javafxports.kokos-1/lib/arm, /data/app/org.javafxports.kokos-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]
                                                                           at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                           at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                           at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                           at javafxports.android.DalvikLauncher.resolveApplicationClass(DalvikLauncher.java:262)
                                                                           at javafxports.android.DalvikLauncher.launchApp(DalvikLauncher.java:164)
                                                                           at javafxports.android.FXDalvikEntity.getLauncherAndLaunchApplication(FXDalvikEntity.java:162)
                                                                           at javafxports.android.FXDalvikEntity.surfaceCreated(FXDalvikEntity.java:304)
                                                                           at android.view.SurfaceView.updateWindow(SurfaceView.java:583)
                                                                           at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177)
                                                                           at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
                                                                           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2063)
                                                                           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
                                                                           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
                                                                           at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
                                                                           at android.view.Choreographer.doCallbacks(Choreographer.java:670)
                                                                           at android.view.Choreographer.doFrame(Choreographer.java:606)
                                                                           at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
                                                                           at android.os.Handler.handleCallback(Handler.java:739)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                           at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
                                                                        Suppressed: java.lang.ClassNotFoundException: Didn't find class "org.javafxports.kokos.Main" on path: DexPathList[[dex file "/data/dalvik-cache/xposed_XResourcesSuperClass.dex"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                                                                           at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                           at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                           at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                ... 23 more
                                                                            Suppressed: java.lang.ClassNotFoundException: org.javafxports.kokos.Main
                                                                           at java.lang.Class.classForName(Native Method)
                                                                           at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                           at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                           at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                    ... 24 more
                                                                        Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
02-01 21:43:16.411 17575-17575/org.javafxports.kokos V/FXEntity: Called Surface changed [1080, 1848], format 4
02-01 21:43:16.411 17575-17575/org.javafxports.kokos V/FXActivity native: [JVDBG] SURFACE created native android window at 0xa47cd508, surface = 0xff9d0f60
02-01 21:43:16.412 17575-17575/org.javafxports.kokos V/FXEntity: Called Surface redraw needed
02-01 21:43:16.423 17575-17575/org.javafxports.kokos V/FXEntity: Called Surface redraw needed
02-01 21:43:16.441 1378-1536/system_process I/ActivityManager: Displayed org.javafxports.kokos/javafxports.android.FXActivity: +330ms

Aquí está mi archivo app / build.gradle, he intentado actualizar las dependencias pero todavía tengo problemas, ¿hay algo obviamente mal?

Mi archivo original app / build.gradle:

buildscript {
    repositories {
        jcenter()
    }   
    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.5.0'
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}
repositories { 
    jcenter()
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    // minSdkVersion 16
    buildToolsVersion "23.0.2"
    dexOptions {
        preDexLibraries = false
    }
    defaultConfig {
        applicationId "lodgon.org.kokos"
        minSdkVersion 16
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    sourceSets {
        main {
            jniLibs.srcDir file("/opt/dalvik-sdk/rt/lib")
            assets.srcDirs = ['assets']
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile fileTree(include: ['*.jar'], dir: '/opt/dalvik-sdk/rt/lib/ext')
}


project.tasks.withType(com.android.build.gradle.tasks.Dex) {
    additionalParameters=['--core-library']
}

Mi aplicación editada / build.gradle

Apliqué algunas correcciones sugeridas y cambié la ubicación de ID de aplicación y dalvik-sdk, pero todavía tengo el mismo problema, el archivo ahora se ve así:

buildscript {
    repositories {
        jcenter()
    }   
    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.5.0'
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}
repositories { 
    jcenter()
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    // minSdkVersion 16
    buildToolsVersion "23.0.2"
    dexOptions {
        preDexLibraries = false
    }
    defaultConfig {
        applicationId "javafxports.org.kokos"
        minSdkVersion 16
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    sourceSets {
        main {
            jniLibs.srcDir file("C:\\Users\\AdamL\\.gradle\\caches\\modules-2\\files-2.1\\org.javafxports\\dalvik-sdk\\8.60.8\\6630ec66e4703c910ac3fd6151a8494c8b59186b\\unpacked\\dalvik-sdk\\rt\\lib")
            assets.srcDirs = ['assets']
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile fileTree(include: ['*.jar'], dir: 'C:\\Users\\AdamL\\.gradle\\caches\\modules-2\\files-2.1\\org.javafxports\\dalvik-sdk\\8.60.8\\6630ec66e4703c910ac3fd6151a8494c8b59186b\\unpacked\\dalvik-sdk\\rt\\lib\\ext')
}


project.tasks.withType(com.android.build.gradle.tasks.Dex) {
    additionalParameters=['--core-library']
}

Manifiesto de Android

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="javafxports.org.kokos" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="javafxports.org.kokos.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Estos son los cambios que hice desde el proyecto de muestra descargado

El complemento JavaFXPorts cambió a la versión 1.32Se cambiaron las referencias del complemento de Android-Gradle a la versión 2.2.3Cambió la versión de retrolamba a 3.5.0Se cambió la ID de aplicación para corregir unaSe cambió la ubicación de dalvik-sdk para corregir una

La compilación se ejecuta desde el proyecto de muestras que contiene como: gradlew: Kokos: androidInstall

Respuestas a la pregunta(2)

Su respuesta a la pregunta