android开发分享百度定位

百度定位的垃圾之处:百度定位官方Demo, 下载解压后项目根目录是LocationDemo一. 填写申请的AK(app key)后,跑起来代码就崩溃。崩溃信息:E/NativeLoader: found lib armeabi/BaiduMapSDK_base_v6_3_0.so errorE/idulocationdem: No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initCl

百度定位的垃圾之处:

百度定位官方Demo, 下载解压后项目根目录是LocationDemo

一. 填写申请的AK(app key)后,跑起来代码就崩溃。

  1. 崩溃信息:
E/NativeLoader: found lib armeabi/BaiduMapSDK_base_v6_3_0.so error E/idulocationdem: No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass and Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I) E/AndroidRuntime: FATAL EXCEPTION: main     Process: com.baidu.baidulocationdemo, PID: 17572     java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass and Java_com_baidu_mapsdkplatform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I)         at com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(Native Method)         at com.baidu.mapsdkplatform.comjni.tools.a.b(Unknown Source:6)         at com.baidu.mapsdkplatform.comapi.a.<clinit>(Unknown Source:23)         at com.baidu.mapsdkplatform.comapi.a.a(Unknown Source:0)         at com.baidu.mapsdkplatform.comapi.c.a(Unknown Source:17)         at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source:2)         at com.baidu.location.demo.LocationApplication.onCreate(LocationApplication.java:30)         at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1190)         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6571)         at android.app.ActivityThread.access$1400(ActivityThread.java:224)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)         at android.os.Handler.dispatchMessage(Handler.java:107)         at android.os.Looper.loop(Looper.java:224)         at android.app.ActivityThread.main(ActivityThread.java:7551)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 
  1. 崩溃原因:

找不到native方法,那一定是是.so文件的问题,找build.gradle配置,确实没有cpu类型的配置:

defaultConfig {         applicationId "com.baidu.baidulocationdemo"         minSdkVersion 16         targetSdkVersion 28         versionCode 1         versionName "1.0"          ndk {             abiFilters 'armeabi','armeabi-v7a'/*,'arm64-v8a','x86','x86_64'*/         }     } 

添加后,运行依然崩溃,在网上找了一圈有人说是.so文件版本的问题,还别说,上面的崩溃信息第一条说的就是found lib armeabi/BaiduMapSDK_base_v6_3_0.so error,那找一下这个so文件,结果代码里根本就没有,有的只是BaiduMapSDK_base_v6_1_0.so,这个示例写的真是GOOD。
百度定位

二. jar包和so包依赖的复杂。

从示例看,百度定位好像要依赖so文件,再看高德定位,只要一个AMap_Location_V4.8.0_20191210.jar包可以。

不得不说,百度的定位集成真是垃圾。这里强烈推荐高德定位,对于高德定位的后台定位和息屏持续定位亲测在Android 10上也没问题,这里为记录文档https://blog.csdn.net/u012551120/article/details/106421213

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/897932.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐