java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.android.wincentcar-58U7Y45PmvJ6HkcbAnaufA==/base.apk", zip file "/data/app/com.android.wincentcar-58U7Y45PmvJ6HkcbAnaufA==/feature_entry-debug-rich-unsigned.hap"],nativeLibraryDirectories=[/data/app/com.android.wincentcar-58U7Y45PmvJ6HkcbAnaufA==/lib/arm64, /system/lib64, /hw_product/lib64, /system/product/lib64, /system/lib64/module/multimedia]]] couldn't find "libpaddle_lite_jni.so"
在没有正确引用so文件情况下会报出上述错误,正确姿势应该如下

在Android的写法是在main目录下创建jniLibs,然后.so文件复制进去即可,但是在鸿蒙里面要在libs/内放置arm64-v8a和armeabi-v7a两个文件夹的so文件,然后在build.gradle文件 加多一个.so的描述
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har', '*.so'])
最后在使用到动态链接库的目录下添加loadLibrary
static {
System.loadLibrary("paddle_lite_jni");
}
即可使用
本文介绍了在鸿蒙系统上遇到Java.lang.UnsatisfiedLinkError错误的解决方案,强调了在Android与鸿蒙系统中处理.so文件的不同之处。在Android中,只需将.so文件放入jniLibs目录,而在鸿蒙系统中,需要在libs目录下为不同架构创建arm64-v8a和armeabi-v7a文件夹,并在build.gradle文件中添加.so文件描述。同时,文中提到在使用动态链接库时,需要在相应代码中加载库,如System.loadLibrary(paddle_lite_jni)。
9038

被折叠的 条评论
为什么被折叠?



