Adobe Android ANE支持armeabi

时间:2018-04-20 06:14:59

标签: android air adobe ane twilio-video

我正在使用我的adobe air app在Android中整合Twilio视频。我可以成功添加视频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.access$900(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.access$900(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。

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

1 个答案:

答案 0 :(得分:1)

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

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

您最终应该采用以下结构:

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