Trouble installing ANE containing shared libraries when ADT target is apk-captive-runtime
hello!
i have ane contains shared library c/c++ code, accessed java side of extension via jni. when use adt include ane in apk package, shared library missing apk package if adt target apk-captive-runtime. consequently, java methods marked native broken because c/c++ implementations can't found. (specifically, when java side of extension attempts load shared library calling system.loadlibrary(), unsatisfiedlinkerror exception thrown.)
incidentally, shared libraries correctly included in apk package if adt target apk or apk-debug. bug occurs when adt target apk-captive-runtime, suspect there's nothing wrong ane itself.
the ane structured follows:
myane | catalog.xml | library.swf | mimetype | \---meta-inf \---ane | extension.xml | \---android-arm | library.swf | myane.jar | \---libs \---armeabi-v7a libmyane.so |
below call package apk adt:
adt -package -target apk-captive-runtime -storetype pkcs12 -keystore "cert\anetest.p12" -storepass fd "dist\anetest-captive-runtime.apk" "application.xml" -c bin . -c "icons/android" . -extdir lib |
has else experienced issue? bug adt, , if so, there workarounds?
thanks!
edit: problem occurs air 3.8 , 3.9.
it turns out there workaround issue. placing shared library in ane's libs/armeabi folder rather libs/armeabi-v7a, shared library correctly included in apk package if adt target apk-captive-runtime.
note workaround inconsistent adobe's ane documentation: documentation states apk package includes libraries in libs/armeabi-v7a if adt target apk or apk-captive-runtime; or libraries in libs/armeabi if adt target apk-emulator, apk-debug, or apk-profile.
More discussions in AIR Development
adobe
Comments
Post a Comment