我在按照这个https://paddle-lite.readthedocs.io/zh/latest/quick_start/java_demo.html文档中运行预测示例程序时,在android studio中报错,报错如下
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.baidu.paddle.lite, PID: 13705
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.baidu.paddle.lite-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libpaddle_lite_jni.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
at java.lang.System.loadLibrary(System.java:988)
at com.baidu.paddle.lite.PaddleLiteInitializer.init(PaddleLiteInitializer.java:20)
at com.baidu.paddle.lite.PaddlePredictor.(PaddlePredictor.java:197)
at com.baidu.paddle.lite.PaddlePredictor.createPaddlePredictor(PaddlePredictor.java:41)
at com.baidu.paddle.lite.MainActivity.getVersionInfo(MainActivity.java:65)
at com.baidu.paddle.lite.MainActivity.onCreate(MainActivity.java:24)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2280)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.access$800(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5305)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
我是在Ubuntu上下载预编译的预测库,准备预测部署模型,然后下载模型文件,最后把demo复制到Windows上的android studio上去运行的,然后就报错了
- [ ]
8条答案
按热度按时间nx7onnlm1#
目前看是找不到
couldn't find "libpaddle_lite_jni.so"
这个文件,你看下是否存在这个文件呢,如果不存在可以在我们Paddle-Lite的release页面下载nom7f22z2#
这个文件是有的,路径是jniLibs / arm8 /,文档说放到这个文件夹下面,我是按照文档做的,每一步都一样,但是nativeLibraryDirectories = [/ vendor / lib,/ system / lib]这个是什么意思,是要放在这个文件夹下面吗?但是并没有这个目录。我是一开始在Ubuntu下准备好预测库和部署模型,然后下载模型文件,最后把整个的demo移到了Windows上的android studio上,然后就报错了,而且android studio上还装了NDK,一直报错已经好几天了
rsl1atfo3#
在jniLibs这个目录下有arm7,arm8,arm64-v8a,armeabi-v7a,x86这几个文件夹,libpaddle_lite_jni.so这个文件放在x86文件夹下报错“failed: dlopen failed: "/data/app/com.baidu.paddle.lite-2/lib/x86/libpaddle_lite_jni.so" is 64-bit instead of 32-bit”,而放在其他的文件夹下,就会报“ couldn't find libpaddle_lite_jni.so"这个错误,而x86和其他几个是在同一个目录的,为什么x86下会报错这个库是64位不是32位,而在其他的文件夹下,就会提示找不到呢?
gorkyyrv4#
这个你可以先确定下是否是模拟器环境还是真机环境
cgyqldqp5#
建议用真机环境,应该就不遇到x86的问题
6qftjkof6#
The real environment encountered the same problem, have you solved it?
3df52oht7#
还没有,我使用的是android虚拟机,我觉得可能是虚拟机的问题,我打算过一段时间用真机测试一下
5anewei68#
同样问题,请问解决了吗