下面幾篇博客將會講到,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了.....
總結:寫博客要認真......被自己絆了一跤!!!