美文网首页Android知识Android开发经验谈
android安装目录app_libs导致的so加载失败

android安装目录app_libs导致的so加载失败

作者: adanchou | 来源:发表于2016-09-29 20:27 被阅读505次

    最近要把公司的android 播放器sdk包装成RN组件,播放器是个很重的组件,但是从RN的理论上讲又是行得通的,所以,那就在我的样板工程中来尝试吧。

    建立一个react-native模块之后,也写了相对应的Component,运行加载一切顺利,但是再次运行,crash,报错。

    
    java.lang.UnsatisfiedLinkError: dalvik.system.DexClassLoader[exPathList[[zip file
     "/data/data/com.***.rnapp/files/sinaplugin/PlayerSDKCore_V3.2.apk"],
     nativeLibraryDirectories=[/data/data/com.***.rnapp/app_libs, /vendor/lib, /system/lib]]]
      couldn't find "libsinit.so"
    
    Paste_Image.png

    定位

    从log中看发现是没有成功加载so文件,这个不应该啊,迅速定位一下。

    我们的播放器是按插件的方式开发的,用的是dynamic-load-apk
    来动态加载所需要的播放内核,以便将来动态升级,结果去 so存放目录下看,确实没有发现 libsinit.so 文件,说明确实有问题,经过在模拟器调试发现

    在第一次从asset目录copy出需要的apk后,load所需的so是成功的,并且断点后发现,确实app_libs目录是有的,

    Paste_Image.png

    但是当RN模块加载之后,app_libs 目录竟然被干掉了,到此已经找到原因,说明RN代码里面做了一些处理,
    也使用了app_libs目录,

    解决

    尝试使用加前缀目录, 更改目录结构 app_libs => app_sinalibs 再次尝试,一切正常 。。。。

    相关文章

      网友评论

        本文标题:android安装目录app_libs导致的so加载失败

        本文链接:https://www.haomeiwen.com/subject/inklyttx.html