Adobe air 3.0 ANE для Android, нулевой ExtensionContext?

Я работал с примером вибрации из собственных расширений Adobe для Air 3.0 на Android.

У меня есть скомпилированный ANE и упакованный .apk.

Проблема, с которой я сталкиваюсь, заключается в том, что библиотека actionscript получает нулевой ExtensionContext.

Я попытался создать .apk с помощью adt -package -target apk-debug, чтобы видеть следы действий в logcat, и именно здесь я нахожу нулевую ошибку.

extContext = ExtensionContext.createExtensionContext("com.adobe.Vibration", null);

extContext имеет значение null и аварийно завершает работу при следующем методе .call().

Все исходники стоковые из примеров, я ничего не менял.

Есть ли у кого-нибудь опыт работы с одним из примеров Adobe ANE на компьютере с Windows? Большинство примеров для Mac.


person Rev Tyler    schedule 07.11.2011    source источник
comment
Я не вижу ничего плохого в этой строке, может быть, в вашем исходном коде есть другое место, из-за которого extContext имеет значение null?   -  person Siebe    schedule 07.11.2011
comment
Многое может пойти не так. Вы добавили идентификатор расширения в свой дескриптор приложения?   -  person Joe Ward    schedule 07.11.2011
comment
-Siebe Когда кнопка нажата, она выполняет всего около 3 строк кода, прежде чем произойдет сбой. А если посмотреть, является ли контекст нулевым, то метод для инициализации контекста, первая вещь в этом методе — это строка, создающая контекст. Сразу после этого происходит сбой .call. @Joe Идентификатор расширения находится в дескрипторе. Все исходники скачиваются с сайта Adobe. Баночка была названа правильно, все имена пакетов правильные. Я не получил никаких ошибок во время создания ANE или APK...   -  person Rev Tyler    schedule 08.11.2011


Ответы (3)


О Боже. Какая трата недели.

Я использовал учебник с gotoandlearn.com, в котором мне было сказано, в сценарии сборки, использовать команду jar, чтобы поместить мое собственное расширение в банку.

Я просто использовал .jar, который автоматически создается в папке NativeAndroid/bin/, и все в порядке.

Оказывается, этот учебник устарел и больше не очень полезен для сборки.

person Rev Tyler    schedule 11.11.2011
comment
Так в чем именно заключалось решение? - person IgorGanapolsky; 15.08.2016

Один дополнительный комментарий. Вам нужно установить целевую платформу и установить флажок Is Library из Properties -> Android, чтобы получить скомпилированный jar в папке bin.

P.S. .sh из gotoandlearn можно выполнить в Powershell в Windows с небольшими изменениями для запуска bat-файлов: ( cmd "/c adt.bat" )

person George Konnov    schedule 02.08.2013

У меня точно такая же проблема с собственным расширением, которое я пишу, и с открытым исходным кодом. Я начал этот проект с обучающего кода из Adobe DevNet. Я нашел примеры этой конкретной проблемы, которой я пытался точно следовать, но пока не повезло. Я определил, что это проблема разрешения домена песочницы.

Вот моя строка кода:

_aneContext = ExtensionContext.createExtensionContext("com.adobe.sampleasextension", "");

Вот ссылка на код в моем проекте GitHub:

https://github.com/interactivenyc/ANESampleProject/blob/master/TEST_AndroidAIR/src/ANESampleTest.as

Вот моя ошибка компилятора:

SecurityError: Error #3207: Application-sandbox content cannot access this feature.
    at flash.system::Security$/allowDomain()
    at com.adobe.sampleasextension::SampleASExtension()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/ANESampleSWC/src/com/adobe/sampleasextension/SampleASExtension.as:14]
    at ANESampleTest/initializeANE()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/TEST_AndroidAIR/src/ANESampleTest.as:198]
    at ANESampleTest/onAddedToStage()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/TEST_AndroidAIR/src/ANESampleTest.as:131]
    at runtime::ContentPlayer/loadInitialContent()
    at runtime::ContentPlayer/playRawContent()
    at runtime::ContentPlayer/playContent()
    at runtime::AppRunner/run()
    at AppEntryCommon/run()
    at global/runtime::AndroidMobileDeviceAppEntry()
person Steve Warren    schedule 07.10.2013