Android adb 安装app提示无so库报错解决办法

logcat报错如下

03-31 12:15:57.291   947   947 E AndroidRuntime: FATAL EXCEPTION: main
03-31 12:15:57.291   947   947 E AndroidRuntime: Process: com.nushine.nshlbus, PID: 947
03-31 12:15:57.291   947   947 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libKdCan.so" needed or dlopened by "/system/lib/libnativeloader.so" is not accessible for the namespace "classloader-namespace"
03-31 12:15:57.291   947   947 E AndroidRuntime:  at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at java.lang.System.loadLibrary(System.java:1657)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at imax.can.CanOperation.<init>(CanOperation.java:19)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverHard.Can.Can.<init>(Can.java:39)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverJ1939.DriverJ1939.<init>(DriverJ1939.java:20)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverProtocol.DriverProtocol.<init>(DriverProtocol.java:36)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverServer.DriverCfg.<init>(DriverCfg.java:15)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverServer.DriverManager.DriverInit(DriverManager.java:205)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.nushine.nshlbus.com.driverlayer.os_driverServer.DriverManager.onCreate(DriverManager.java:244)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.app.ActivityThread.handleCreateService(ActivityThread.java:3420)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.app.ActivityThread.access$2300(ActivityThread.java:176)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:105)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.os.Looper.loop(Looper.java:164)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:6600)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method)
03-31 12:15:57.291   947   947 E AndroidRuntime:  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)


原因是libKdCan.so找不到

解决方法:
修改system/core/rootdir/etc/public.libraries.android.txt(注:这个是系统源码路径)
添加你要使用的的so到此问题件中。

也可以直接不编译在板子上修改,对应目录/system/etc

一、先cat
/system/etc:~$ cat public.libraries.txt
….
libwebviewchromium_plat_support.so
libz.so
二、用echo添加
/system/etc:~$echo “libKdCan.so”  >> public.libraries.txt
三、再cat一下确认已经加入
/system/etc:~$ cat public.libraries.txt
….
libwebviewchromium_plat_support.so
libz.so
libKdCan.so

注:
echo
1.覆盖    echo  “” >文件名

2.追加  echo “”  >>文件名

发表评论

滚动至顶部