android – java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader

有没有经历过这个错误的人?

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.swig.simple-2/base.apk"],nativeLibraryDirectories=[/vendor/lib,/system/lib]]] couldn't find "liborg.swig.simple.example.so"

通过这种方式加载库时发生错误.

static {
    System.loadLibrary("example");
}

我确定’example’类存在于当前文件夹中.

解决方法

请注意,有一个命名约定.您的lib需要被称为libexample.so.

LoadLibrary(“example”)将查找libexample.so.

.so库需要在lib文件夹下的apk下面(因为你正在为Android开发,它需要在lib / armeabi和lib / armeabi-v7a文件夹下 – 为什么这两个文件夹?某些版本的Android看起来在lib下/ armeabi和一些看下lib / armeabi-v7a … se什么对你有用).

其他要寻找的东西:

>确保编译正确的体系结构(如果编译为armeabi v5,它将无法在armeabiv7或armeabiv7s上运行).
>确保导出的原型在正确的类中使用(请查看hello jni示例.您的公开函数需要看起来像Java_mypackagename_myjavabridgeclass_myfunction).

例如,函数Java_com_example_sample_hello将在java类com.example.sample,function hello中进行转换.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...