创建JNI服务遇UnsatisfiedLinkError:找不到libjavanativetestservice_jni.so
JNI共享库加载失败排查求助
我基于ARPI13项目开发了一个访问JNI共享库的Service,但启动时抛出异常,提示无法找到指定的JNI库。
异常日志
8746 05-29 05:00:16.259 921 921 E AndroidRuntime: FATAL EXCEPTION: main 8747 05-29 05:00:16.259 921 921 E AndroidRuntime: Process: vendor.alvenan.javanativetestservice, PID: 921 8748 05-29 05:00:16.259 921 921 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjavanativetestservice_jni.so" not found 8749 05-29 05:00:16.259 921 921 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:1077) 8750 05-29 05:00:16.259 921 921 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:998) 8751 05-29 05:00:16.259 921 921 E AndroidRuntime: at java.lang.System.loadLibrary(System.java:1661) 8752 05-29 05:00:16.259 921 921 E AndroidRuntime: at vendor.alvenan.javanativetestservice.JavaNativeTestServiceImpl.<clinit>(JavaNativeTestServiceImpl.java:14) 8753 05-29 05:00:16.259 921 921 E AndroidRuntime: at vendor.alvenan.javanativetestservice.JavaNativeTestService.onCreate(JavaNativeTestService.java:14) 8754 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1277) 8755 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6759) 8756 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 8757 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133) 8758 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 8759 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201) 8760 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288) 8761 05-29 05:00:16.259 921 921 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7872) 8762 05-29 05:00:16.259 921 921 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 8763 05-29 05:00:16.259 921 921 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
已确认的配置信息
- 库文件路径与权限:
rpi4:/ # ls -l vendor/lib64/libjavanativetestservice_jni.so -rw-r--r-- 1 root root 10952 2023-05-29 15:40 vendor/lib64/libjavanativetestservice_jni.so
- 已将库名添加到公共库列表:
rpi4:/ # cat vendor/etc/public.libraries.txt libjavanativetestservice_jni.so
- 设备Makefile配置:
PRODUCT_PACKAGES += JavaNativeTestService PRODUCT_COPY_FILES += \ vendor/alvenan/aosp_bench/bench_test_jni/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
完整代码可参考我的GitHub仓库中bench_test_jni模块,使用的基础项目为ARPI13。
恳请协助排查该异常的原因及解决办法。
内容的提问来源于stack exchange,提问作者Álison Venâncio
相关产品推荐
相关产品推荐

