10-05 22:40:50.102: E/AndroidRuntime(12427): ... 2 more
这个问题真的很坑,到目前我也没有解决掉,虽然说我的程序跑起来了,但是那个是因为换了其他的手机,
这个问题应该是与手机的型号有关的,我用了三部手机,一部是国产杂牌android4.0.3 一部是华为荣耀android5.0的 一部是华硕asus 7寸平板(它搭载的是intel 内核)
发现只有国产杂牌是可以使用的,其他的两步手机都不行,
最开始我以为是 定位器LocationClient()的初始化有问题,因为我的定位代码是在 自定义的View 里面执行的,他继承的是LinearLayout ,而这个构造函数传递过去的是activity的context,我特地把context的获取变成了getApplicationContext()方法,发现还是不行,最后我把定位器客户端的初始化放在application里面执行,在自定义的view代码里面通过传递过来的context来获取application里面的变量,发现还是不行,
再反过头看他报的错是因为loadLibrary出错题,但是我也没有发现在代码中,到底加载哪个包是必须 用代码来确定的,好像是只需要把jar包和so文件放到工程的libs下面就可以了,他自己会自动加载的,我试过用LocationClient 的变量 .load... 再按alt+?快捷键,发现没有提示说有这个loadLibrary函数,而这个SDKInitializer类更不可能,只有初始化那个函数,我再回来看,他的loadLibrary 是被谁调用的at java.lang.System.loadLibrary(System.java:989) at java.lang.Runtime.loadLibrary(Runtime.java:435)这个代码是Java自己调用的,这个没辙了,它报的错是 x86 只可能是与手机有关了,但是这里面我傻了 做错了一件事,caused by 把我坑死了
我发现caused by需要liblocSDK4d.so 我就尝试了下 把4搞进去,可惜了,加进去错误更多了
10-06 12:51:26.432: E/AndroidRuntime(23766): FATAL EXCEPTION: main
10-06 12:51:26.432: E/AndroidRuntime(23766): Process: com.example.nongmin, PID: 23766
10-06 12:51:26.432: E/AndroidRuntime(23766): java.lang.UnsatisfiedLinkError: No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create() (tried Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create and Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create__)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.platform.comjni.map.commonmemcache.a.a(Unknown Source)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.platform.comapi.e.c.b(Unknown Source)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.mapapi.a.c(Unknown Source)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.javis.mytools.MyApplication.onCreate(MyApplication.java:38)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4557)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.app.ActivityThread.access$1500(ActivityThread.java:147)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.os.Handler.dispatchMessage(Handler.java:102)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.os.Looper.loop(Looper.java:135)
10-06 12:51:26.432: E/AndroidRuntime(23766): at android.app.ActivityThread.main(ActivityThread.java:5260)
10-06 12:51:26.432: E/AndroidRuntime(23766): at java.lang.reflect.Method.invoke(Native Method)
10-06 12:51:26.432: E/AndroidRuntime(23766): at java.lang.reflect.Method.invoke(Method.java:372)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
10-06 12:51:26.432: E/AndroidRuntime(23766): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
搞进去之后一直出现这种问题,我无奈了,这个时候我想把 jar换回原来的,不行了,不行了,接下来永远报这样的错,不过你怎么调,
我之后把so文件和jar文件都换成当前的最高版本,6 还是不行,用国产手机也不能运行,之后去官网重新申请key还是不行,在之后算了,
把libs全部删除,重新把官网的libs再一起导入,这些就可以了,中间我还关机了几次重启都不行,
这里我得到一个教训就是 不要随便更换 百度地图的sdk 版本一定要对应