标签: gluon-mobile

任务“运行”导致:org.joor.ReflectException: java.lang.NoSuchFieldException: javaExecHandleBuilder - Gluon 移动项目

当我尝试在 NetBeans 中运行我的整个项目时,我收到以下错误日志:

...
Task :run FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':run'.
> org.joor.ReflectException: java.lang.NoSuchFieldException: javaExecHandleBuilder

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么,我在 build.gradle 中指定了主类...请帮助!

javafx gluon-mobile

10
推荐指数
1
解决办法
2076
查看次数

如何在iOS上的Gluon Mobile中使用PositionService?

我想PositionService在iOS上使用Gluon Mobile.我编写了一个在桌面上运行的小型示例应用程序,提供(按预期)假位置更改,以及在Android上.但是,在iOS模拟器上,不会调用侦听器.以下是代码的相关部分:

public class BasicView extends View {

        private static final Logger LOGGER = Logger.getLogger(BasicView.class.getName());

        final Label label;

        public BasicView(String name) {
            super(name);
            label = new Label();
            VBox controls = new VBox(15.0, label);
            controls.setAlignment(Pos.CENTER);
            setCenter(controls);
            // get current position
            Platform p = PlatformFactory.getPlatform();
            PositionService ps = p.getPositionService();
            outputPos(ps.getPosition());
            ps.positionProperty().addListener((obs, oldPos, newPos) -> {
                LOGGER.log(Level.INFO, "\nobs: {0}\noldPos: {1}\nnewPos: {2}",
                        new Object[]{obs, oldPos, newPos});
                outputPos(newPos);
            });
        }

        private void outputPos(Position p) {
            if (p != null) {
                label.setText(String.format("We are currently …
Run Code Online (Sandbox Code Playgroud)

gluon-mobile

8
推荐指数
1
解决办法
384
查看次数

无法使用gradle为移动设备构建胶子项目

我按照http://docs.gluonhq.com/charm/4.0.1/#_getting_started上的说明进行操作.我正在使用eclipse 4.5.2和JDK 1.8.0_102.我还从https://developer.android.com/studio/index.html#Other下载了带有24/25 API级别SDK的Android Studio .这是我做的:

  1. 下载gradle 3.1并设置环境变量,以便gradle -v返回正确的信息.
  2. http://download.gluonhq.com/tools/eclipse/release安装了eclipse gluon插件版本2.4.0
  3. 从Buildship安装Buildship 1.0.21 - http://download.eclipse.org/buildship/updates/e45/releases/1.0
  4. 创建了胶子项目,如教程和检查平台所示:android,iOS和桌面.项目已成功创建.
  5. 打开"显示视图"菜单

    在此输入图像描述

    和选定的Gradle任务

  6. gradle任务视图与教程不同:

    在此输入图像描述

    我选择了GluonTest/application/run任务,它在桌面上运行良好.但是我无法找到你在图片中看到的任务androidInstalllaunchIOSDevice任务.

这是我的gradle.build文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.1.1'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'gluon.main.GluonApplication'

dependencies {
    compile 'com.gluonhq:charm:4.0.1'
}

jfxmobile {
    downConfig {
        version = '3.0.0'
        plugins 'display', 'lifecycle', 'statusbar', 'storage'
    } …
Run Code Online (Sandbox Code Playgroud)

java javafx gluon-mobile

5
推荐指数
1
解决办法
1201
查看次数

Gluon 移动唠叨屏

Just a quick question. I made a JavaFX application and I want to get it working on Android. So far the only way I found to get this working is to use Gluon Mobile (JavaFXPorts). However, the free version has a nag screen that pops up every time you open the app, prompting you to buy a license.

Is this screen also going to be popping up for users who download the app in the app store or just for …

java android javafx javafxports gluon-mobile

5
推荐指数
1
解决办法
1237
查看次数

Gluon Mobile 2.2.0:如何更改 ProgressBar/ProgressIndicator 颜色?

默认颜色com.gluonhq.charm.glisten.control.ProgressIndicator/ProgressBar是 material design blue

如何改变颜色?

我尝试了不同的 JavaFX CSS 属性,但它不起作用。

javafx gluon gluon-mobile

3
推荐指数
1
解决办法
685
查看次数

如何在 Android 和 iOS 上的客户端和服务器之间发送 Java 对象?

我有一个客户端和一个服务器,两者都是用 Java 编写的,并且共享应该在彼此之间发送的 Java 类。我不确定我可以在移动设备上使用哪些库,因为我不知道 Dalvik 支持什么、RoboVM 支持什么等。不知道在这种情况下 Gluon Mobile 可以为我做什么。

具体来说,我有一个如下所示的文件:

class Data {
    IntegerProperty int1 = new SimpleIntegerProperty(4);
    ObjectProperty<Person> person = new SimpleObjectProperty();
    ObservableList<Contact> contacts = FXCollections.observableArrayList();
    // other properties
    // also add the getters for the properties and the getters and setters for the values
}
Run Code Online (Sandbox Code Playgroud)

PersonContact上面类似 - 它们主要包含数据属性和一些用于添加和从内部(私有)列表中删除的方法等。基本上它们就像只是带有属性包装器的bean或POJO。这是需要在服务器和客户端之间发送的数据,但只有包装的值很重要,而不是绑定这让我想到了关于序列化的问题:javaFX 属性不可序列化,因此在这里建议将上述类制作为可外部化的类,并写入和读取包装的值。

最终,我不在乎我是否需要做这些定制的事情(尽管这是很多工作)或者是否有解决方法。我需要在服务器上有一个客户端可以调用的方法Data receiveDatafor(...),服务器获取Data data并返回它。客户端和服务器各自具有与Data对象无关的绑定。

目前我们在桌面内部使用 RMI。我读到 RMI 不受支持,而且它可能不是一个很好的选择,但它确实允许非常轻松地发送 java 对象。JavaEE 有 websockets,可以传输对象的二进制形式,但它是 …

gluon-mobile

3
推荐指数
1
解决办法
786
查看次数

NoSuchMethodError - 没有静态方法比较(java/util/Comparator)

我正在 Android 设备上使用 Gluon 对Listfrom进行排序。java.util即使分配了 8GB,该应用程序也无法针对 iOS 进行编译(内存不足),但这是另一个问题。

classpath 'org.javafxports:jfxmobile-plugin:1.3.4'

compile 'com.gluonhq:charm:4.3.2'

jfxmobile version = '3.2.4'

导致崩溃的这一行:

highscoreList.sort(comparing(Highscore::getScore).reversed()); //#89

03-22 09:42:14.709 27312 27337 E AndroidRuntime: FATAL EXCEPTION: JavaFX Application Thread
03-22 09:42:14.709 27312 27337 E AndroidRuntime: Process: com.x.pacman, PID: 27312
03-22 09:42:14.709 27312 27337 E AndroidRuntime: java.lang.NoSuchMethodError: No static method comparing(Ljava/util/function/Function;)Ljava/util/Comparator; in class Ljava/util/Comparator; or its super classes (declaration of 'java.util.Comparator' appears in /system/framework/core-libart.jar)
03-22 09:42:14.709 27312 27337 E AndroidRuntime:        at com.x.pacman.HighscoreUtil.readHighscoreList(HighscoreUtil.java:89)
Run Code Online (Sandbox Code Playgroud)

我开始搜索,发现这篇关于 NoSuchMethodError 的文章 …

java android gluon-mobile

3
推荐指数
1
解决办法
1582
查看次数

Gluon 上的 ListView 性能不佳

我有一个自定义ListCell实现,如下图所示。

在此处输入图片说明

左侧,代表日期,由 3 个标签组成,放入 aVBox和由计数器组成的“CounterContent” TextField,每个数字为 a HBox,包含在 a 中,两个Hboxes包含用于 kWh、kWh/day 等的标签. 这似乎太多了,无法高效运行。

我试图在后台任务中加载数据,显示进度指示器,而任务正在运行,但与桌面不同,在 android 上的性能非常差。每当我切换到列表视图时,垃圾收集就会启动并阻塞 ui 线程,因此进度指示器永远不会出现。

我已经在华为 Y-300、Android 4.1.1、javafxports 8.60.6(因为 javafxports 8.60.7 导致错误,导致TextField无法使用)和三星 S5 mini、Android 5+上尝试过。在三星手机上,性能总体上要好得多,就像预期的那样,因为我猜是提前编译,但仍然存在垃圾收集问题。此外,在列表视图中填充了单元格后,滚动不是很流畅。

列表单元是复杂的还是性能不佳的其他原因?

更新:

运行大量测试后,似乎滚动不流畅不是由性能问题引起的。至少在 S5 上(javafxports 8.60.7)。

我删除了所有 css 样式,并用单个标签替换了文本字段(计数器节点已经是一个自定义控件(忘记了),它在 2 Regions(不是HBoxes)中布置了文本字段,并且ListCell在构造函数中实例化了 的节点) . 此外,我切换了ListViewaCharmListView并设置了 android.monocle.input.touchRadius=1。

这些步骤都没有带来显着的改进。

澄清一下:与华为手机相比,S5和安卓5+的滚动是可以用的,但不是很流畅,导致用户体验不尽如人意。

在华为 (javafxports 8.60.6) 上,更改标签的计数器文本字段有显着改进,但还没有达到滚动可用的程度。直到我设置了这个神奇的实验开关:gluon.experimental.performance=true,这使得列表视图的滚动速度快如闪电(经过一点预热延迟),但仍然不是很流畅。

gluon gluon-mobile

2
推荐指数
1
解决办法
1068
查看次数

如何在 JavaFX 中的动画计时器中正确放置对话框

我有一个动画计时器,当我处理结束时,如果某个条件为真,我想向用户显示一个对话框。当我只是尝试在 stop() 方法之后调用对话框时,我遇到了这个异常(仅在移动设备上):

java.lang.IllegalStateException:动画或布局处理期间无法进入嵌套循环

因此,对于这种情况,我解决了将对话框包装在 Platform.runLater() 方法中的问题。

这是处理这种情况的正确方法吗?

如果不是,哪个是正确的?

我正在使用的对话框是胶子对话框:

http://docs.gluonhq.com/charm/javadoc/4.2.0/com/gluonhq/charm/glisten/control/Dialog.html

而在这个简单的表演上是不存在的,只有表演和等待。

java javafx java-8 gluon gluon-mobile

2
推荐指数
1
解决办法
2323
查看次数

构建Android时不支持InvokeDynamic

我正在运行Gluon/charm 3.0.0版.我在我的JavaFX项目中添加了一个Java8编译的库(通过IntelliJ插件创建),在iOS上它按预期工作和构建,但在执行gradle任务时android或者androidInstall我得到了这个错误:

[ant:java] Java Result: 1
:createMainDexList FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':createMainDexList'.
> Exception in thread "main" com.android.dx.cf.iface.ParseException: InvokeDynamic not supported
    at com.android.dx.cf.cst.ConstantPoolParser.determineOffsets(ConstantPoolParser.java:226)
    at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:132)
    at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)
    at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:491)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToEndIfNecessary(DirectClassFile.java:397)
    at com.android.dx.cf.direct.DirectClassFile.getAttributes(DirectClassFile.java:311)
    at com.android.multidex.MainDexListBuilder.hasRuntimeVisibleAnnotation(MainDexListBuilder.java:191)
    at com.android.multidex.MainDexListBuilder.keepAnnotated(MainDexListBuilder.java:167)
    at com.android.multidex.MainDexListBuilder.<init>(MainDexListBuilder.java:121)
    at com.android.multidex.MainDexListBuilder.main(MainDexListBuilder.java:91)
    at com.android.multidex.ClassReferenceListBuilder.main(ClassReferenceListBuilder.java:58)
...while preparsing cst 0002 at offset 0000000f
...while parsing de/<removed>/traffic_light/library/Test.class
Run Code Online (Sandbox Code Playgroud)

我觉得有点奇怪的是,我甚至没有针对traffic_light的Test类,甚至在库中也没有.搜索错误我发现它可能需要Java 8来调用动态/支持Lambdas,但是例如Gluon的Presenter本身使用Lambdas.

此外,谷歌搜索我发现这个问题同样的问题,但遗憾的是胶子删除了他们的论坛,页面没有缓存在任何地方.

gluon gluon-mobile

1
推荐指数
1
解决办法
1707
查看次数

getPublicStorage("Pictures") 未列出任何文件

呼唤

File picturesDir = Services.get(StorageService.class)
            .flatMap(s -> s.getPublicStorage("Pictures"))
            .orElseThrow(() -> new RuntimeException("Error retrieving public storage")); 
for (File pic : picturesDir.listFiles()) {
        System.out.println("file " + pic.getName());
}
Run Code Online (Sandbox Code Playgroud)

没有列出任何文件。我认为它应该列出 iPhone 上我的图片库中的所有文件。

调用 s.getPublicStorage("") 它会列出两个文件夹:gluon、Pictures。

我怎样才能正确访问它?

javafx gluon-mobile

1
推荐指数
1
解决办法
340
查看次数

启动时删除胶子移动对话框

使用javafx(使用javafxports和gluon-mobile)是Android App Development的新手.
我是否通过扩展MobileApplication类使用gluon-Api来构建我的项目.
使用示例程序 .Am尝试制作我自己的版本.
但是,在应用程序的开始启动这个不需要的对话框.

我在谈论这个不断出现在应用程序启动时的对话框.

我在谈论对话

这是我的代码.我已经扩展了MobileApplication类,以根据示例创建我自己的App版本.

    package com.gluonapplication;

    import com.gluonapplication.views.Home;
    import com.gluonhq.charm.glisten.application.MobileApplication;
    import static com.gluonhq.charm.glisten.application.MobileApplication.HOME_VIEW;

    /**
     *
     * @author Guru
     */
     public class MainApplication extends MobileApplication {

     public void init()
     {
      addViewFactory(HOME_VIEW,() -> new Home(HOME_VIEW).getView());


     }

     public void postinit()
     {

     }

     public void start()
     {

     }
     }
Run Code Online (Sandbox Code Playgroud)

这是Home类,它返回App的主视图.

package com.gluonapplication.views;

    import com.gluonhq.charm.glisten.mvc.View;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javafx.fxml.FXMLLoader;

    /**
     *
     * @author Guru
     */ …
Run Code Online (Sandbox Code Playgroud)

java android javafx javafxports gluon-mobile

1
推荐指数
1
解决办法
1404
查看次数

标签 统计

gluon-mobile ×12

javafx ×7

java ×5

gluon ×4

android ×3

javafxports ×2

java-8 ×1