无法安装在Android x86_64的JavaFX的应用 [英] Cannot install JavaFX app on Android x86_64

查看:284
本文介绍了无法安装在Android x86_64的JavaFX的应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用管理的gradle和javafxport但APK安装失败我的设备上建立一个JavaFX应用程序。

I managed to build a JavaFX app using gradle and javafxport but the apk fail to install on my device.

下面是我的build.gradle:

Here is my build.gradle:

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b10'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

mainClassName = 'java.Main'

repositories {
    jcenter()
}

jfxmobile {
    ios {
        forceLinkClasses = ['java.**.*']
    }
    android {
        applicationPackage = 'com.superflush.java'
    androidSdk = 'C:/Users/USERNAME/AppData/Local/Android/android-sdk'
    }
}

我的设备是华硕Zenfone2股市运行的Andr​​oid 5.0

这是一个x86_64的,所以我怀疑可能是一个问题,但林不知道如何诊断。任何建议如何解决这个问题?

我设法让我的手在标准4.4.2 ARM电话,以便它安装,但它不会跑(blackscreen),这里是在执行logcat的错误输出:

I managed to get my hands on standard 4.4.2 ARM phone so it installs but it wont run (blackscreen) and here is the logcat error output at execution:

E/DalvikLauncher(12088): java.lang.ClassNotFoundException: Didn't find class "application.Main" on path: DexPathList[[zip file "/data/app/com.superflu
sh.java-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.superflush.java-2, /vendor/lib, /system/lib]]
E/DalvikLauncher(12088):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/DalvikLauncher(12088):        at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/DalvikLauncher(12088):        at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/DalvikLauncher(12088):        at javafxports.android.DalvikLauncher.resolveApplicationClass(DalvikLauncher.java:232)
E/DalvikLauncher(12088):        at javafxports.android.DalvikLauncher.launchApp(DalvikLauncher.java:134)
E/DalvikLauncher(12088):        at javafxports.android.FXDalvikEntity.getLauncherAndLaunchApplication(FXDalvikEntity.java:118)
E/DalvikLauncher(12088):        at javafxports.android.FXDalvikEntity.surfaceCreated(FXDalvikEntity.java:144)
E/DalvikLauncher(12088):        at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
E/DalvikLauncher(12088):        at android.view.SurfaceView.access$000(SurfaceView.java:86)
E/DalvikLauncher(12088):        at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
E/DalvikLauncher(12088):        at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
E/DalvikLauncher(12088):        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1871)
E/DalvikLauncher(12088):        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
E/DalvikLauncher(12088):        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
E/DalvikLauncher(12088):        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
E/DalvikLauncher(12088):        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
E/DalvikLauncher(12088):        at android.view.Choreographer.doFrame(Choreographer.java:544)
E/DalvikLauncher(12088):        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
E/DalvikLauncher(12088):        at android.os.Handler.handleCallback(Handler.java:733)
E/DalvikLauncher(12088):        at android.os.Handler.dispatchMessage(Handler.java:95)
E/DalvikLauncher(12088):        at android.os.Looper.loop(Looper.java:136)
E/DalvikLauncher(12088):        at android.app.ActivityThread.main(ActivityThread.java:5149)
E/DalvikLauncher(12088):        at java.lang.reflect.Method.invokeNative(Native Method)
E/DalvikLauncher(12088):        at java.lang.reflect.Method.invoke(Method.java:515)
E/DalvikLauncher(12088):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
E/DalvikLauncher(12088):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
E/DalvikLauncher(12088):        at dalvik.system.NativeStart.main(Native Method)

下面是我的项目结构,Main.java是主要的:

Here is my project structure, Main.java being the main:

推荐答案

首先,在 mainClassName 您应该添加你的名字主类(比方说 JavaFXApp ),包括包。是这样的:

First of all, under mainClassName you should add the name of you main class (let say JavaFXApp), including the package. something like this:

mainClassName = 'com.superflush.java.JavaFXApp'

机器人,你不需要 applicationPackage 行。

一旦你已经成功地构建您的APK,如果您的设备上安装它,尝试运行它。保持连接,并在命令行中运行亚行logcat 来看到所有的输出,并找到任何可能的例外,如果它不能正常工作。

Once you have successfully built your apk, if you install it on your device, try to run it. Keep it connected, and run adb logcat on the command line to see all the output and find any possible exception, if it doesn't work.

修改

,这是一个更恰当的答案。

Based on the last changes on the OP answer, this is a more proper answer.

对于初学者来说,主Java类应该是一个正确命名的包内。您必须遵守Android包名称约定的规则,所以像这样将工作:

For starters, the Main java class should be inside a package properly named. You must follow Android package name convention rules, so something like this will work:

package com.julioqc.superflush;

另外请注意,你会发现这些文件夹在你的主类:

Also note, you will find your main class under these folders:

src/main/java/com/julioqc/superFlush/Main.java

(注主/ JAVA 不是包的名称的一部分)。

(Note main/java is not part of the name of the package).

因此​​,你应该有文件夹的相同结构下的资源:

Accordingly, you should have your resources under the same structure of folders:

src/main/resources/com/julioqc/superFlush/application.css
src/main/resources/com/julioqc/superFlush/Image.jpg ...

最后,这应该是在的build.gradle 文件:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b10'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

mainClassName = 'com.julioqc.superflush.Main'

repositories {
    jcenter()
}

jfxmobile {
    ios {
        forceLinkClasses = ['com.julioqc.superflush.**.*']
    }
    android {
        androidSdk = 'C:/Users/<user>/AppData/Local/Android/android-sdk'
    }
}

这篇关于无法安装在Android x86_64的JavaFX的应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆