eclispse項目導入Android項目 java.lang.UnsatisfiedLinkError: Native method not found:

下面幾篇博客將會講到,eclipse項目導入Android項目出現的一些問題,及解決方案。

首先,如何將eclipse項目轉換成Android 項目不再多說,需要在eclipse中“Gradle”一下,並且還要將所依賴的庫文件都“勾選上”。

那麼問題來了,android studio的so庫導入方法和eclipse是不一致的。而發生一下報錯:

Process: hkhz.zhhb, PID: 28716
java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I
            at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)
            at com.baidu.platform.comjni.map.commonmemcache.a.a(Unknown Source)
            at com.baidu.platform.comapi.c.c.b(Unknown Source)
            at com.baidu.mapapi.a.c(Unknown Source)
            at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
            at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
            at hkhz.zhhb.BaiduMap.onCreate(BaiduMap.java:61)
            at android.app.Activity.performCreate(Activity.java:5277)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
            at com.qihoo360.mobilesafe.loader.b.callActivityOnCreate(SourceFile:81)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2415)
            at android.app.ActivityThread.access$800(ActivityThread.java:166)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1336)
            at android.os.Handler.dispatchMessage(Handler.java:110)
            at android.os.Looper.loop(Looper.java:193)
            at android.app.ActivityThread.main(ActivityThread.java:5353)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:830)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:646)
            at dalvik.system.NativeStart.main(Native Method)


解決方法不只一種:

這裏只提供親測可行的方案:

第一種:

出現以上提示是因爲JNI找不到方法。
崩潰的原因是:android studio的so庫導入方法和eclipse是不一致的,eclipse只要直接把所有的so丟到libs裏去。但是androidstudio是不行的。
弄一個文件夾so/armeabi,把所有的so全部放進去。結構就是so/armeabi/a.so,b.so,c.so
然後壓縮這個文件夾成爲so.jar,你應該知道的jar其實就是zip格式。
然後把so.jar放到libs目錄下。sync gradle,然後build就行了。

還不可以試試第二種方案:

很簡單,在用AndroidStudio的話 .so 文件要放在src/main/jniLibs/armeabi-v7a下面,然後把那個so文件重新複製一份進去.......

補充:當導入項目時,可能會出現“拷斤拷斤拷斤拷斤拷斤”,多數是由於項目中的文件編碼問題,根據提示找到文件使用EditPlus更改編碼格式“UTF-8”就ok了.....

總結:寫博客要認真......被自己絆了一跤!!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章