2

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

编辑:我尝试使用的库是CloudRail,下载地址在这里(直接下载) 目前,使用提取的 classes.jar 中的类它有点功能,但是当他们的库中的活动启动时(com.cloudrail.jar) si.servicecode.commands.awaitCodeRedirect.AuthenticationActivity)它会显示,但是它是空白的,里面什么都没有。我目前假设这是不正确的,并且丢失的资源/文件是造成这种情况的原因。

4

1 回答 1

3

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

接下来,我将活动添加到AndroidManifest.xml文件中,在 main 之后FXActivity

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

然后我在 Android 包中创建了一个类,提供了访问 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();
}

这个类是从视图中调用的:

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

    });
}

我可以部署 apk 并运行它。

该活动在 JavaFX 应用程序之外的 Android WebView 中运行。

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

于 2016-05-11T18:28:19.887 回答