在 Gluon JavaFXPorts 项目中使用 Android aar 库

Using an Android aar library in a Gluon JavaFXPorts project

我的问题很简单。我正在使用 Gluon 的 Eclipse 插件,并在 Android 上用 JavaFX 开发应用程序 运行。但是,我需要使用 Android 库(.aar 格式),但经过一段时间的尝试,还是不行。有人知道我该怎么做吗?我已经尝试过只使用 .aar 中的 classes.jar,虽然这有点奏效,但我认为库缺少一些对其功能至关重要的资源和东西。谢谢。

编辑:我尝试使用的库是 CloudRail, the download is here (Direct download) 目前,使用提取的 classes.jar 中的 类 它有些功能,但是当他们的库中的 activity 启动时(com.cloudrail.si.servicecode.commands.awaitCodeRedirect.AuthenticationActivity)它显示但是它是空白的并且有什么都没有。我目前假设这是不正确的,缺失的 resources/files 是造成这种情况的原因。

我已经设法从 aar 文件中提取 classes.jar 并将其作为依赖项添加到 Gluon 项目中。

接下来,我将 activity 添加到 AndroidManifest.xml 文件中,在主要 FXActivity:

之后
<activity android:name="com.cloudrail.si.servicecode.commands.awaitCodeRedirect.AuthenticationActivity" />  

然后我在 Android 包中创建了一个 class,提供了访问 Google Drive 所需的凭据。

public AndroidTestAar() {
    GoogleDrive cs = new GoogleDrive(FXActivity.getInstance(), "****","****");
    new Thread() {
        @Override
        public void run() {
            List<CloudMetaData> metas = cs.getChildren("/");
            Log.i("info", "Folder has " + metas.size() + " children");
            for (CloudMetaData meta : metas) {
                Log.i("info", "Child: " + meta.getName());
            }
        }
    }.start();
}

此 class 从视图中调用:

public BasicView(String name) {
    ...
    button.setOnAction(e -> {
        try {
            Class c = Class.forName("com.testaar.AndroidTestAar");
            c.newInstance();
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex)  {}

    });
}

我可以部署 apk 并 运行 它。

activity 运行 在 JavaFX 应用之外,在 Android WebView 中。

首先它要求我使用我的 user/password 登录,然后它询问我是否允许离线访问,最后它在控制台上成功列出了我的所有文件。