Adobe Android ANE 支持 armeabi

Adobe Android ANE support armeabi

我正在 android 中将 Twilio 视频与我的 adobe air 应用程序集成。我可以在 ane 中成功添加视频 sdk,但 twilio 视频 sdk 使用 com.getkeepsafe.relinker SDK。

这个SDK给我以下错误

Process: air.TestApp, PID: 585
java.lang.RuntimeException: Unable to start activity ComponentInfo{air.TestApp/com.nethram.video.views.MainActivity}: com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/libjingle_peerconnection_so.so
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2456)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
   at android.app.ActivityThread.access0(ActivityThread.java:159)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1384)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:152)
   at android.app.ActivityThread.main(ActivityThread.java:5507)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/libjingle_peerconnection_so.so
   at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:85)
   at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
   at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
   at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
   at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:51)
   at com.twilio.video.MediaFactory.instance(MediaFactory.java:47)
   at com.twilio.video.LocalAudioTrack.create(LocalAudioTrack.java:98)
   at com.twilio.video.LocalAudioTrack.create(LocalAudioTrack.java:75)
   at com.nethram.video.views.MainActivity.createAudioAndVideoTracks(MainActivity.java:260)
   at com.nethram.video.views.MainActivity.onCreate(MainActivity.java:131)
   at android.app.Activity.performCreate(Activity.java:6304)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539) 
   at android.app.ActivityThread.access0(ActivityThread.java:159) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1384) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:152) 
   at android.app.ActivityThread.main(ActivityThread.java:5507) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

当我查看这个错误时,我认为这个包使用了 armeabi split。

有什么方法可以解决这个问题吗?

打包使用依赖本机 (jni) 库的 SDK 的 ANE 时,您需要确保它们也包含在您的 ANE 包中。这些必须放在适当架构目录(armeabi 等)的 libs 目录中。

如果处理 aar 文件,那么您只需检查它是否包含 jni 目录并将其内容复制到 ANE 平台实现中的 libs 目录。

你应该得到以下结构:

[ANDROID_PLATFORM]/
    your_ane_implementation.jar
    your_ane_res/
    libs/
        armeabi/
            libXXXXX.so
        armeabi-v7a/
            libXXXXX.so    
        ...