鸿蒙加载第三方动态链接库(.so)文件

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文件情况下会报出上述错误,正确姿势应该如下

鸿蒙加载第三方动态链接库(.so)文件_第1张图片

在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");
}

即可使用

你可能感兴趣的:(harmonyos,鸿蒙,deveco)