10-11 11:33:14.047 7427-7427/com.example.xxxxxxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.xxxxxxxx, PID: 7427
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.xxxxxxxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.xxxxxxxx-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxxx.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at vivali.utility.drive.xxxxxxx.<clinit>(xxxxxxx.java:9)
at com.example.ccoretest.MainActivity.writeToPriFile(MainActivity.java:627)
at com.example.ccoretest.MainActivity.onActivityResult(MainActivity.java:354)
at android.app.Activity.dispatchActivityResult(Activity.java:7165)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5004)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5051)
at android.app.ActivityThread.access$1600(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7410)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
.so库编码格式被改造成的错误。
本身这个错误很常见,但是我按照一般方法,在build.gradle下添加
android {
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi' ,'x86', 'armeabi-v7a', 'x86_64','arm64-v8a'
}
}
}
等等,各种关于build.gradle的更改方式都遍历了,结果还是同样的问题。
最后我突然想到,这个工程从eclipse导入Androidstudio中之后,我曾经点击过.so库的编码格式,由GBK到utf-8倒换过,当然一直都是乱码。以为没影响。但是想到了还是重新试了把eclipse工程导入Androidstudio里,不要点击编码格式,发现直接编译,没有任何问题。
对于.so库应用不熟悉,导致的错误耗时过久。纪念一下,希望可以帮到大家