【Android】百度地图使用

百度地图官网教程:
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/attention

打开旧工程,更新成AndroidX后,报错信息如下:

2020-10-22 13:38:57.838 15332-15332/com.ding.admin.newfieldtest E/NativeLoader: found libBaiduMapSDK_base_v5_2_0.so error
2020-10-22 13:38:57.839 15332-15332/com.ding.admin.newfieldtest E/zygote64: 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)
2020-10-22 13:38:57.841 15332-15332/com.ding.admin.newfieldtest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.ding.admin.newfieldtest, PID: 15332
    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.mapapi.SDKInitializer.initialize(Unknown Source:1)
        at com.ding.admin.newfieldtest.MainActivity.onCreate(MainActivity.java:178)

解决方法参考:
https://blog.csdn.net/qq_32365567/article/details/70224862?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

对于像类似某个.so文件找不到报错时,我找到了几种解决的方法,记一下供大家参考。
一:.so文件与jar包不匹配。这个问题相信大家不会犯的。这个就需要大家仔细了,这里就不说了。
二:把百度下载的libs文件直接复制进项目中,里面的有armeabi文件包含了所有的.so文件。这样做就不会出现找不到某个.so文件的问题,也就不会报错运行正常。
三:如果你觉得这样对于项目的排版不好看,有很多人会在src-main里创建jniLibs文件,再把这些armeabi资源文件放进去。但是这样放进去后也报这种错误时,那你就需要在app的buildGradle里把sourceSets { main {jniLibs.srcDirs = [‘libs’] }}给删掉。当然你这里要dependencies {compile fileTree(include: [’*.jar’],dir:‘libs’)}。
四:如果别人提交代码时忽略了jnilibs文件时,里面的.so文件就不会提交,你更新下来就没有.so文件,也会报这个错,首先看看你项目中是否含有.so文件。

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_30885821/article/details/109220653