jniSystem. loadLibrary加载,jvm会自己做判断,dll还是so文件

解决方案 »

  1.   

    尝试一下:
      System.loadlibrary("/mnt/sdcard/folder/name.so")
      或者
      System.loadlibrary("/mnt/sdcard/folder/libname.so")
    如果不行的话,可以告知JVM你的so所在路径, PathClassLoader会从两个地方加载so,一个路径是固定的,可能是:
    lib/<something>/lib<name>.so,另一个路径在系统属性中定义的,它的key是java.library.path
      

  2.   

    不能直接从sdcard上load库,
    你可以复制到 /data/data/包名/files/下面,然后再load库,
    这时你可以在jni层load,也可以在java层. loadlibrary 只需要库名,load函数是绝对路径。
      

  3.   

    楼上告诉我 怎么复制到到/data/data/包名/lib/下面吗?急啊
      

  4.   

    放到data/data/..目录下也不行,我也有这个问题一直没解决,就搁置了。