当前位置: 首页 > news >正文

关于使用高德安卓api时so文件的坑

很久之前,我用高德安卓api开发,将相关内容全部挤在主项目下,包括amap的依赖,以及专有的so文件等。

有一天,我把amap相关的操作全部打包成了一个lib。拆包出来方便管理。

又过了几个月,新建了一个project要写assignment。就想着把之前打包好的lib直接拿过来用,然后就出现了地图相关全黑屏,logcat狂跳以下报错的情况:

2025-05-23 19:52:17.109 10854-10854 ou.trackllector         com.xxx            E  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)
2025-05-23 19:52:17.109 10854-10854 System.err              com.xxx            W  java.lang.UnsatisfiedLinkError: 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)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at com.autonavi.base.ae.gmap.GLMapEngine.nativeMainThreadTrigger(Native Method)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at com.autonavi.base.ae.gmap.GLMapEngine.triggerMainThread(GLMapEngine.java:268)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at com.amap.api.col.3sl.l$1.handleMessage(AMapDelegateImp.java:656)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at android.os.Handler.dispatchMessage(Handler.java:106)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at android.os.Looper.loopOnce(Looper.java:201)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at android.os.Looper.loop(Looper.java:288)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at android.app.ActivityThread.main(ActivityThread.java:7924)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at java.lang.reflect.Method.invoke(Native Method)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
2025-05-23 19:52:17.110 10854-10854 System.err              com.xxx            W  	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

最开始只是怀疑我的包兼容性有问题,因为最开始封包的时候没有经过充分测试。跟着debug找了半天,发现最怕的null没有出现,然后把报错扔给了ai,ai是gradle里面没有加jniLibs相关,即:

android {sourceSets {main {jniLibs.srcDirs = ['src/main/jniLibs']}}
}

由于之前的项目好久没有管依赖相关了,就那jniLibs为关键词双击shift查了下,没有相关内容,就怀疑和这个没有关系。so又是可能一年多前加的,就彻底把它忘了。随后找了半天发现还是不对,翻开了原项目的app/src/main/目录,发现其下有一个jniLibs的东西(这个东西默认就是在src/main/目录下,系统会自动识别,如果不在才需要手动指明)。里面打开正是之前导入高德api时候附带的so文件。

随后,把jniLibs移到对应的lib的src/main/目录下后,问题解决。

ps:期间被ai误导说gradle版本7以下才不需要手动声明,然后查了半天版本。发现我原版本本来就已经是7以上了,后面又因为文件移动错误折腾了半天。

相关文章:

  • 攻略生成模块
  • RESTful API 在前后端交互中的作用与实践
  • 小说漫画管理系统
  • pytorch LSTM 结构详解
  • 安卓新建项目时,Gradle下载慢下载如何用国内的镜像
  • 【博客系统】博客系统第四弹:令牌技术
  • 【python深度学习】Day34 GPU训练及类的call方法
  • 智能指针
  • 科研经验贴:AI领域的研究方向总结
  • DAO模式
  • Java转Go日记(五十六):gin 渲染
  • 提高 Maven 项目的编译效率
  • 大厂技术大神远程 3 年,凌晨 1 点到 6 点竟开会 77 次。同事一脸震惊,网友:身体还扛得住吗?
  • matlab时间反转镜算法
  • Appium+python自动化(四)- 如何查看程序所占端口号和IP
  • 动态防御体系实战:AI如何重构DDoS攻防逻辑
  • 交安安全员:交通工程安全领域的关键角色
  • DB-GPT扩展自定义Agent配置说明
  • 同为科技领军智能电源分配单元技术,助力物联网与计量高质量发展
  • Linux安装Nginx并配置转发
  • 上海营销平台网站建设/google下载官方版
  • 深圳企业网站建设报价/优化网络的软件
  • wordpress注册工具/搜索引擎优化的基本方法
  • c2c电子商务网站开发/百度推广下载安装
  • 我自己做个网站怎么做/自动seo网站源码
  • 网站在美国做的服务器/如何进行推广