android 导入第三方 so文件问题

说不委屈 发布于 2016/01/20 10:09
阅读 9K+
收藏 0
项目里面 集成了 友盟的微博分享 和  另一个第三方 库 里面都有 so 文件  运行时出现了以下错误

01-20 09:50:01.144: E/AndroidRuntime(31737): FATAL EXCEPTION: main
01-20 09:50:01.144: E/AndroidRuntime(31737): Process: com.example.newsapp, PID: 31737
01-20 09:50:01.144: E/AndroidRuntime(31737): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.newsapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.newsapp-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libUyghurSDK.so"
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.Runtime.loadLibrary(Runtime.java:366)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.System.loadLibrary(System.java:989)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.almas.tools.NativeClass.<clinit>(Unknown Source)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.example.newsapp.MyApplication.onCreate(MyApplication.java:22)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1019)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4806)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.access$1500(ActivityThread.java:167)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1521)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.os.Handler.dispatchMessage(Handler.java:111)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.os.Looper.loop(Looper.java:194)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.main(ActivityThread.java:5588)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.reflect.Method.invoke(Native Method)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.reflect.Method.invoke(Method.java:372)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
01-20 09:50:01.144: E/AndroidRuntime(31737): FATAL EXCEPTION: main
01-20 09:50:01.144: E/AndroidRuntime(31737): Process: com.example.newsapp, PID: 31737
01-20 09:50:01.144: E/AndroidRuntime(31737): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.newsapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.newsapp-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libUyghurSDK.so"
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.Runtime.loadLibrary(Runtime.java:366)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.System.loadLibrary(System.java:989)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.almas.tools.NativeClass.<clinit>(Unknown Source)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.example.newsapp.MyApplication.onCreate(MyApplication.java:22)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1019)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4806)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.access$1500(ActivityThread.java:167)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1521)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.os.Handler.dispatchMessage(Handler.java:111)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.os.Looper.loop(Looper.java:194)
01-20 09:50:01.144: E/AndroidRuntime(31737): at android.app.ActivityThread.main(ActivityThread.java:5588)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.reflect.Method.invoke(Native Method)
01-20 09:50:01.144: E/AndroidRuntime(31737): at java.lang.reflect.Method.invoke(Method.java:372)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
01-20 09:50:01.144: E/AndroidRuntime(31737): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)


求大神帮忙告诉下怎么解决

加载中
0
xpbob
xpbob

[DexPathList[[zip file "/data/app/com.example.newsapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.newsapp-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libUyghurSDK.so"

直接说在他的路径下找不到库啊,你要不把库方法路径下,要不自己添加java.library.path

xpbob
xpbob
@说不委屈 你既然引用动态链接库,说明你懂点jni,你的库不是放在哪里都能被加载的,java会找固定的路径,上面错误也写出一些路径来,你放到他们下面就行了
说不委屈
麻烦 可以说的具体点么 这样说还是不知道怎么弄 因为 我微博的so 是直接拷入我的项目的 另一个是把项目当成库 引用的
0
花花兽
花花兽

couldn't find "libUyghurSDK.so" 用的eclipse?studio?so文件路径确认被加载了?

说不委屈
我用的是 eclipse 我引用的第三方 库 里面 有放着so 文件啊 能不能加你qq 我截图给你看下 帮我看看哪里有问题 可以么
0
laojiadingxi
laojiadingxi
你用的android studio?
说不委屈
eclipse
0
laojiadingxi
laojiadingxi
在64位手机上,android会优先从arm64-v8a下寻找,你的libs有这个目录吗,如果有,看看有没有so文件,或者把64位arm目录删了,直接放到armeabi-v7a目录下
说不委屈
好的 我试试下
0
wixche
wixche

如果你用的是Android Studio 而且确认libs目录下面有你的so库文件, 那么你可以去你'app'目录下面的build.gradle文件里面看看, 看android {}里面有没有下面这段代码没有的话加上试试 

sourceSets { main { jniLibs.srcDirs = ['libs']
    }
}

除非敲代码像拍手唱歌
回复 @说不委屈 : 都啥年代了 ...还用eclipse
1
15800904094
回复 @说不委屈 : 你这个问题解决了吗
说不委屈
我用的是eclipse啊
返回顶部
顶部