2016-05-09 7 views
2

Мой вопрос достаточно прост. Я использую плагин Gluon для Eclipse и разрабатываю приложение в JavaFX для работы на Android. Тем не менее, мне нужно использовать библиотеку Android (формат .aar), и через некоторое время попробовать не удается. Кто-нибудь знает, как я могу это сделать? Я уже пробовал просто использовать class.jar внутри .aar, в то время как это работает, есть несколько ресурсов и вещей, которые, как я считаю, отсутствуют в библиотеке, что существенно для его функции. Спасибо.Использование библиотеки Android aar в проекте Gluon JavaFXPorts

Edit: библиотека Я пытаюсь использовать это CloudRail, загрузка here (Direct download) В настоящее время, используя классы из экстрагированных classes.jar это несколько функционально, но когда деятельность из их библиотеки запускается (com.cloudrail .si.servicecode.commands.awaitCodeRedirect.AuthenticationActivity), он отображается, но он пуст, и в нем ничего нет. В настоящее время я предполагаю, что это неверно и что недостающие ресурсы/файлы являются причиной этого.

+0

Проверьте это [вопрос] (http://stackoverflow.com/questions/31155816/javafx-android-port-google-play-services), возможно, это поможет вам. В противном случае, пожалуйста, напишите, какую библиотеку вам нужно импортировать. –

+0

Все ваши ссылки сломаны. Пожалуйста, просмотрите их. –

+0

Я не специалист по JavaFX, но CloudRail для Android использует Android WebView для аутентификации. Возможно, версия WebView JavaFX менее эффективна и не поддерживает функцию, требуемую SDK. – Florian

ответ

3

Мне удалось извлечь classes.jar из файла aar и добавить его в проект 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.

Сначала он попросил меня войти в систему с моим пользователем/паролем, после чего он спросил меня о разрешении автономного доступа, и, наконец, на консоли он успешно перечислил все мои файлы.

+1

Итак, как выясняется. Проблема, с которой я столкнулась, на самом деле вовсе не связана с какой-либо проблемой при использовании .aar's! Это была ошибка, которую я совершил, не аутентифицируясь с помощью новой нити, поэтому блокировал ui. Спасибо за ваше время Хосе Переда. –

 Смежные вопросы

  • Нет связанных вопросов^_^