您的位置:首页 > 移动开发 > Android开发

eclispse项目导入Android项目 java.lang.UnsatisfiedLinkError: Native method not found:

2016-04-28 23:00 357 查看
下面几篇博客将会讲到,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/[b]armeabi-v7a下面,然后把那个so文件重新复制一份进去.......
[/b]

补充:当导入项目时,可能会出现“拷斤拷斤拷斤拷斤拷斤”,多数是由于项目中的文件编码问题,根据提示找到文件使用EditPlus更改编码格式“UTF-8”就ok了.....

总结:写博客要认真......被自己绊了一跤!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息