用System.loadLibrary加载30个左右so库
2.2.1 2.3真机正常
2.2 2.3模拟器也正常
2.2真机出现 java.lang.UnsatisfiedLinkError: Library not found异常
这个so文件肯定是存在的,后来测试发现只要超过26个后就会出这个异常
目前是否和系统版本有关还不确认
是否和个数有关也不能100%确认,也有可能和内存大小有关
有人碰到这个问题吗?
现在不知道怎么解决

解决方案 »

  1.   

    android源码中发现确实有SO_MAX
    当我加载的so个数为26的时候,能运行,但是运行后马上出异常,提示
    ERROR/HAL(5110): Cannot load library: alloc_info[269]:    89 too many libraries when loading gralloc.qsd8k.so
    当加载so个数为25个,能正常运行
    看来真的和个数有关了
    不知道不合并so能不能解决
      

  2.   


    lz可以把一些简单功能的so合并以减少so数量(比较菜的方法)关注这个问题
      

  3.   

    这个要关注一下  这个SO_MAX应该是总的个数包括libc.so libm.so等等 
    可以用交叉编译工具下的命令看看 arm-eabi-readelf -d  xxx.so