Кроме того, я обновил свои зависимости, расположение Davik SDK (как предложил Хосе Переда) и изменил способ установки флага основной библиотеки в gradle, чтобы заменить старый способ:

аюсь запустить пример проекта javafxports Kokos, так как хочу использовать компоненты JavaFX в приложении, построенном в Android Studio, но не могу его правильно построить, я могу собрать все другие примеры, но этот смешанный подход не работает.

Когда я строю, я просто получаю черный экран и ошибку "java.lang.ClassNotFoundException: не нашел класс" org.javafxports.kokos.Main "по пути: DexPathList [[zip file" /data/app/org.javafxports .kokos-2 / base.apk "]"

Насколько я могу судить, ни один из классов kokos на самом деле не встроен в apk, поэтому он не может их найти, но я не могу понять, почему, и это единственный пример, который я могу найти для этого подхода.

Может ли кто-нибудь успешно собрать и запустить пример Kokos и, если да, потребовалось ли его изменение?

В качестве альтернативы есть еще один пример использования компонентов JavaFX в проекте Android, подобный этому, который я мог бы использовать в качестве основы? Я просто хочу иметь возможность иметь приложение, состоящее из нативных действий Android, но с возможностью запуска в действие JavaFX.

Сообщение об ошибке:

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

Вот мой файл app / build.gradle, я пытался обновить зависимости, но все еще возникают проблемы, есть что-то явно не так?

Мой оригинальный файл 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']
}

Мое отредактированное приложение / build.gradle

Я применил некоторые предложенные исправления и изменил applicationID и расположение dalvik-sdk, но проблема все еще остается, файл теперь выглядит так:

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']
}

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>

Вот изменения, которые я сделал из загруженного примера проекта

Плагин JavaFXPorts изменен на версию 1.32Изменены ссылки на плагин Android-Gradle до версии 2.2.3.Изменена версия ретроламбы на 3.5.0Изменил applicationID, чтобы исправить одинИзменено расположение dalvik-sdk, чтобы исправить

Сборка запускается из проекта, содержащего примеры, например: gradlew: Kokos: androidInstall

Ответы на вопрос(2)

Ваш ответ на вопрос