我的问题很简单。我正在使用 Gluon 的 Eclipse 插件,并在 JavaFX 中开发一个在 Android 上运行的应用程序。但是,我需要使用 Android 库(.aar 格式),但经过一段时间的尝试后,却无法使用。有人知道我该怎么做吗?我已经尝试过仅使用 .aar 中的classes.jar,虽然这有点起作用,但我认为该库缺少一些对其功能至关重要的资源和东西。谢谢。
编辑:我尝试使用的库是 CloudRail ,下载为here (Direct download) 目前,使用提取的classes.jar中的类,它具有一定的功能,但是当启动其库中的 Activity (com.cloudrail.si.servicecode.commands.awaitCodeRedirect.AuthenticationActivity)时,它会显示,但它是空白的,没有任何内容在里面。我目前认为这是不正确的,并且丢失的资源/文件是造成这种情况的原因。
最佳答案
我已成功从 aar 文件中提取 classes.jar
并将其作为依赖项添加到 Gluon 项目中。
接下来,我将该 Activity 添加到 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();
}
此类从 View 中调用:
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 中运行。
首先它要求我使用用户名/密码登录,然后询问我是否允许离线访问,最后在控制台上成功列出了我的所有文件。
关于android - 在 Gluon JavaFXPorts 项目中使用 Android aar 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124732/