原因AndroidRuntime: Process: com.skyworth.android.tr069, PID: 5188
06-23 15:28:53.778 5188 5188 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/app/SkyTr069/SkyTr069.apk"],nativeLibraryDirectories=[/system/app/SkyTr069/lib/arm, /system/app/SkyTr069/SkyTr069.apk!/lib/armeabi-v7a, /system/lib, /product/lib, /system/lib, /product/lib]]] couldn't find "libsk_tr069_jni.so"
06-23 15:28:53.778 5188 5188 E AndroidRuntime: at com.skyworthdigital.opentr069.OpenTR069Native.(OpenTR069Native.java:12)
06-23 15:28:53.778 5188 5188 E AndroidRuntime: at com.skyworthdigital.opentr069.OpenTR069Native.setDataPath(Native Method)
06-23 15:28:53.778 5188 5188 E AndroidRuntime: at com.skyworth.android.tr069.SkyTr069Service.onStartCommand(SkyTr069Service.java:118)
06-23 15:28:53.917 3687 4998 I ActivityManager: Process com.skyworth.android.tr069 (pid 5188) has died: prcp FGS
06-23 15:28:53.920 3687 4998 W ActivityManager: Scheduling restart of crashed service com.skyworth.android.tr069/.SkyTr069Service in 1000ms
06-23 15:28:54.967 3687 3772 I ActivityManager: Start proc 5357:com.skyworth.android.tr069/u0a24 for service {com.skyworth.android.tr069/com.skyworth.android.tr069.SkyTr069Service}
06-23 15:28:55.028 3687 3729 W ActivityManager: Stopping service due to app idle: u0a24 -1s302ms com.skyworth.android.tr069/.SkyTr069Service
原因是/system/app下面的APK成为系统级app时,包含SO文件,app默认加载so库的路径就会变成/system/lib,而system/lib却是只读的,导致so库无法正常解压不会自动安装,
需要手动把so文件push 到 "/system/lib"目录下面。
如果是正常安装到/data/app,/data/data/相应包名目录下会正常出现/lib/*.so文件,可以正常加载运行。但是如果把应用push到/system/app/,/data/data/相应包名目录下没有出现这个库。 system/app下面的应用默认回去加载system/lib下面so库,如果没找到相应的so库就会报UnsatisfiedLinkError 。
经过测试system.loadlibrary加载so库的顺序为:
1、/data/data/相应包名目录下会正常出现/lib/
2、如果1中的目录不存在,则会去加载system/lib下面的so库。
解决方案
将apk中的so文件手动push到"/system/lib" 或使用 adb install 方式安装



