【问题标题】:Using an Android aar library in a Gluon JavaFXPorts project在 Gluon JavaFXPorts 项目中使用 Android aar 库
【发布时间】:2016-08-30 20:54:21
【问题描述】:

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

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

【问题讨论】:

  • 检查这个question,也许它会对你有所帮助。否则,请发布您需要导入的库类型。
  • 您的所有链接都已损坏。请查看它们。
  • 我不是 JavaFX 专家,但 CloudRail for Android 使用 Android WebView 进行身份验证。也许 JavaFX 版本的 WebView 功能较弱,不支持 SDK 需要的功能。
  • Web 视图是 Android 的一部分,据我所知,没有“JavaFX 版本”可以这么说,所以我不是这个问题,无论如何谢谢
  • 接口函数怎么调用?你把它放在一个单独的线程而不是主线程或 AsyncTask 中吗?常见问题解答 (docs.cloudrail.com/docs/faq) 中提到了这一点。希望对您有所帮助。

标签: android javafx javafxports gluon-mobile cloudrail


【解决方案1】:

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

接下来,我将活动添加到 AndroidManifest.xml 文件中,在主 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 中运行。

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

【讨论】:

  • 所以,事实证明。我遇到的问题实际上与使用 .aar 的任何问题都没有关系!事实上,我犯了一个错误,没有使用新线程进行身份验证,因此锁定了 ui。感谢您抽出时间 José Pereda。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 2015-02-13
  • 2016-10-22
相关资源
最近更新 更多