ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

百度地图 坑爹之路

2021-07-07 10:59:14  阅读:302  来源: 互联网

标签:x86 坑爹 之路 app armeabi so jniLibs libs 百度


此帖将记录集成百度地图中碰到的问题以及一些解决的方案

首先按照官网进行集成

https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio

编译完美运行闪退 哦吼

报错如下:

 found lib armeabi/gnustl_shared.so error

found lib armeabi/BaiduMapSDK_base_v7_3_0.so error

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)

然后闪退  报错位置定位在:

SDKInitializer.initialize(this);

但是这是我复制的旧的项目,整个项目我基本上都直接复制的啊,lib和so我也都是复制过来的,build.gradle(app)也是复制过来的,运行旧的APP->完美运行,运行新的APP->报错闪退。。

我吐了。。

我集成方式是:

1.将BaiduLBS_Android.jarcopy到app目录下的libs文件夹中

2.在src目录下的main文件夹下新建一个jniLibs目录

3.将原先包含so文件的armeabi文件夹copy到jinLibs目录下

然后尝试试过的方法有如下(可能我的情况和你的情况不一定完全一样,建议大家都试试):

前提提要:请先检查so 文件 没有放到 jniLibs 下,并且  arm64-v8a  armeabi   armeabi-v7a  x86  x86_64(具体看你需要兼容哪些)  里面的so文件都要放一份(数目要一样)

1.

defaultConfig {

    ndk {
        abiFilters 'x86', 'armeabi-v7a','x86_64','arm64-v8a','armeabi'
    }

    packagingOptions {
        exclude "jniLibs/armeabi/gnustl_shared.so"
        exclude "jniLibs/armeabi/BaiduMapSDK_base_v7_3_0.so"
    }
}

2.直接去官网下载最新的开发包以防止so包和jar包的版本不对

3.在src-main里已经存在jniLibs文件,并且已经把armeabi资源文件放进去了。那么就需要在app的build.gradle里把sourceSets { main {jniLibs.srcDirs = ['libs'] }}给删掉。同时也要确保你的dependencies {

implementation fileTree(include: ['*.jar'], dir: 'libs')//有这个

}

以上方法对我而言都无效

晒 晒 晒。。我真是个与众不同的极品呢

最后我走投无路 灵光乍起

我将我的jniLibs文件删掉,然后将百度开发包里面so的文件夹(arm64-v8a,armeabi,armeabi-v7a,x86,x86_64)和BaiduLBS_Android.jar同时放在了app下libs文件夹中,并在build.gradle(app)中添加配置如下

android{
    ...
     sourceSets {
        main {
            jniLibs.srcDir 'libs'
        }
    }
}

再次运行

结果成功了!!!

坑爹呢吧,明明说好的两种集成方式呢?!明明我旧项目都可以用jniLibs文件这种方式集成,新的怎么就不可以呢? 太坑了,如果上天再给我一次机会 我会去用高德地图。。真的

标签:x86,坑爹,之路,app,armeabi,so,jniLibs,libs,百度
来源: https://blog.csdn.net/SantoriniBat/article/details/118541144

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有