高德地图开发 地图黑屏 报错(No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeMainThr)

当小白第一次开发时容易遇到这样的问题

No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeMainThreadTrigger(int, long) (tried Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeMainThreadTrigger and Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeMainThreadTrigger__IJ)

这是官网提供的开发步骤显示地图-创建地图-开发指南-Android 地图SDK | 高德地图API (amap.com)

这时候大家会很奇怪,明明都是按照官网提供的步骤,为什么会报错地图黑屏呢

问题一:没有创建x86或x86_64文件夹(模拟器是x86架构的)


目前电脑上的模拟器大多是x86架构的,而官方提供的文件中只有arm架构的,如下。


 如果用的是as,那么可以在Device Manage中修改架构,默认是x86的架构,arm架构的在Other Images中


官方提供的demo中只有arm架构的,如果是在x86平台上使用(例如雷电模拟器),需要在jniLibs中创建x86文件夹并将arm文件夹中的文件复制到里面(如果你的架构是x86的,好像这个so库文件还不能直接复制。我x86_64使用的是用arm64中的so文件,可以成功运行,但是x86的就不行)

对于这两个架构,我也不是很懂,有需要的可以查看

一文看懂arm架构和x86架构有什么区别 - 知乎 (zhihu.com)


问题二:未识别到so文件

  1. 创建的jniLibs文件夹必须要与main中的java和res文件夹同级,在project视图中创建jniLibs,如果创建成功,在里面添加so文件后,切换到Android视图查看,会发现jniLibs文件夹和res文件夹一样右下角有小标。

  2. 如果已经在build.gradle中添加了sourceSets标签
        sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }

        那么此时就会把你的 libs 当作 jniLibs ,那么这时候要么你把那些so文件复制到 libs 中,要么就把这块代码删除掉。


至此,我觉得你的问题应该已经解决了

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值