简体   繁体   English

Gluon应用程序无法在iOS上启动

[英]Gluon app won't start on iOS

And Google is not really helpful. Google并没有真正的帮助。

Mar 20, 2016 9:00:13 AM com.gluonhq.charm.down.common.PlatformFactory getPlatform
SEVERE: null
Throwable occurred: java.lang.ClassNotFoundException: com.gluonhq.charm.down.ios.IOSPlatform
    at java.lang.VMClassLoader.findClassInClasspathForLoader(Native Method)
    at java.lang.PathClassLoader.findClass(PathClassLoader.java)
    at java.lang.ClassLoader.loadClass(ClassLoader.java)
    at java.lang.ClassLoader.loadClass(ClassLoader.java)
    at java.lang.Class.classForName(Native Method)
QuantumRenderer: shutdown
    at java.lang.Class.forName(Class.java)
    at java.lang.Class.forName(Class.java)
    at com.gluonhq.charm.down.common.PlatformFactory.getPlatform(PlatformFactory.java)
    at com.gluonhq.charm.glisten.application.MobileApplication.start(SourceFile)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java)
    at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)
    at java.security.AccessController.doPrivileged(AccessController.java)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)
    at org.robovm.apple.uikit.UIApplication.main(Native Method)
    at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)
    at org.javafxports.jfxmobile.ios.BasicLauncher.main(BasicLauncher.java)

Exception in Application start method

java.lang.RuntimeException: Exception in Application start method

    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java)
    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source)
    at java.lang.Thread.run(Thread.java)
Caused by: java.lang.NullPointerException
    at com.gluonhq.charm.glisten.application.MobileApplication.start(SourceFile)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java)
    at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)

    at java.security.AccessController.doPrivileged(AccessController.java)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java)
    at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)
    at org.robovm.apple.uikit.UIApplication.main(Native Method)
    at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)
    at org.javafxports.jfxmobile.ios.BasicLauncher.main(BasicLauncher.java)

This is the build.gradle file: 这是build.gradle文件:

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath 'net.linguica.gradle:maven-settings-plugin:0.5'
        classpath 'org.javafxports:jfxmobile-plugin:1.0.7'
    }
}

plugins {
  id "net.linguica.maven-settings" version "0.5" // make maven settings.xml available in gradle (and automatically setup the security settings for the repos based on the grable name vs maven id
}

apply plugin: 'org.javafxports.jfxmobile'

configurations {
    provided
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url 'http://oss.sonatype.org/content/groups/public/' }
    jcenter() 
    maven { url 'http://nexus.gluonhq.com/nexus/content/repositories/releases/' }
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

dependencies {
    compile ('nl.knowledgeplaza:DH2RIAShared:1.55-SNAPSHOT') {
        exclude module: 'hessian'
    }
    compile 'blog.monkeyboy:hessian-android:1.0'

    compile 'org.jfxtras:jfxtras-controls:8.0-r5-SNAPSHOT'
    compile 'com.miglayout:miglayout-javafx:5.1-SNAPSHOT'
    compile 'de.jensd:fontawesomefx:8.9-retrolambda'

    compile 'joda-time:joda-time:2.9.2'

    compile 'com.gluonhq:charm:2.1.0'
    androidRuntime 'com.gluonhq:charm-android:2.1.0'
    iosRuntime 'com.gluonhq:charm-ios:2.1.0'
    desktopRuntime 'com.gluonhq:charm-desktop:2.1.0'
}

mainClassName = 'nl.softworks.dh2.dh2fx.DH2FX'

retrolambda {
    defaultMethods true
}

jfxmobile {
    android {
        manifest = 'src/android/AndroidManifest.xml'
        packagingOptions {
           pickFirst  'roboto/Apache License.txt'
        }
        dexOptions {
            javaMaxHeapSize = '1024m'
        }
    }
    ios {
        infoPList = file('src/ios/Default-Info.plist')
    }
}

When deploying on iOS, you need to use the forceLinkClasses command , so RoboVM can link in the classes contained in those packages during compilation. 在iOS上进行部署时,您需要使用forceLinkClasses 命令 ,因此RoboVM可以在编译过程中链接这些软件包中包含的类。

You will need to include the classes on your package, and those on any third dependency you may use: 您将需要在包中包括这些类,以及可能会使用的任何第三个依赖项的类:

jfxmobile {
    ios {
        forceLinkClasses = [ 'nl.softwork.**.*', 
                             'com.gluonhq.**.*', 
                             'org.jfxtras.**.*',
                             ...  ]
        infoPList = file('src/ios/Default-Info.plist')
   }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM