Собственные расширения AIR 3 для Android - Могу ли я / Как включить сторонние библиотеки?

При всей новой шумихе вокруг поддержки собственных расширений в AIR 3 я не нашел ни одной вещи, подтверждающей или опровергающей возможность включения и использования внешний JAR внутри собственной реализации Android.

Все примеры в основном демонстрируют способность подключаться к встроенным API Android. Но что, если кто-то захочет использовать одну из сотен библиотек, которые упрощают задачу? Конечно, кажется, что это должно быть возможно. Я попытаюсь обрисовать, что я сделал, и, возможно, кто-то обнаружит недостаток:

  1. Успешно создана собственная библиотека Android с использованием скомпилированного импорта из сторонней библиотеки Android XYZ.
  2. Проект Android экспортирован как файл JAR. Примечание. Указанный сторонний файл JAR находится в / lib внутри jar.
  3. Успешно создана библиотека ActionScript (SWC) для взаимодействия с собственной библиотекой Android.
  4. Создан пакет ANE из SWC, extension.xml, Android JAR и library.swc (для платформы Android-ARM, извлеченный из SWC).
    Примечание. Также пытались поместить стороннюю библиотеку в файловую структуру, описанную здесь: http://help.adobe.com/en_US/air/extensions/WSf268776665d7970d-24823354 12ffea65006 -8000.html # WSf268776665d7970d-6be13ace1308aaebeca-7fff.Я думаю, что это больше ориентировано на выполнение типа времени выполнения с JNI или чем-то еще, поэтому эта статья меня немного смутила.
  5. Используется ANE в примере проекта Flex Mobile.
  6. Создан и установлен APK-файл на тестовом устройстве DroidX.
  7. Может успешно видеть загрузку приложения AIR (и операторы трассировки) в LogCat «ActivityManager: отображается com.me.androidapp / .AppEntry»
  8. Может успешно видеть собственный код Java Android, вызываемый через среду выполнения приложением AIR для создать экземпляр расширения и контекста. "mye_native: MyExtension.initialize", "mye_native: MyExtensionContext.createContext"
  9. Как только приложение AIR пытается вызвать встроенную функцию, оно взрывается и не может найти классы из сторонней библиотеки Android: E dalvikvm: Не удалось найти класс com.thirdparty.SomeClass, на который ссылается метод com.me.nativeExtentions.MyExtensionFunction.call

Есть идеи? Вроде так и должно работать.

Я заметил одну вещь: когда я отделяю APK и Dex от своего чистого Java-приложения для Android (в котором также есть сторонние библиотеки Android), оказывается, что в него были включены классы сторонних разработчиков. (а не просто ссылка на jar). Когда я делаю то же самое с моим Flex APK, я нахожу только свои собственные классы Java плюс классы Adobe, а сторонние классы нигде не могут быть найдены, что я мог бы увидеть.

Я разместил это на форумах Adobe, но подумал, что стоит попробовать SO Think-Tank. Спасибо.

11
задан Derek Bromenshenkel 11 October 2011 в 21:28
поделиться