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

关于使用高德安卓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以上了,后面又因为文件移动错误折腾了半天。

http://www.xdnf.cn/news/8521.html

相关文章:

  • 解锁 BADBOX 2.0 的 DNS 密码箱
  • IP-guard发布新版本4.87.2241.0
  • matlab2007 和 microsoft access怎么连接?
  • java将rtsp转成flv在浏览器播放
  • 【HTML-9】深入理解HTML超链接标签:从基础到高级应用
  • 第R7周:糖尿病预测模型优化探索
  • YOLO12改进-Backbone-引入Swin Transformer替换backbone
  • 地理特征类可视化图像总结
  • Java面向对象编程核心:封装、继承与多态
  • AT24C02(I2C总线)
  • C# TCP协议全面指南:从可靠传输到企业级高并发的深度实践​
  • 当 BIM 遇见 GIS:GISBox 中 Revit 数据导入的技术联动与应用场景
  • 《AI 绘画崛起,人类艺术家如何在夹缝中寻找新机遇?》
  • 复杂工况下液压挖掘机工作臂系统创新设计与性能优化
  • 如何在STM32CubeMX下为STM32工程配置调试打印功能
  • 使用pip安装ptflops报错
  • 探索Qwen2ForCausalLM 架构上进行微调
  • k8s容器入门(2) 容器化组件“可漂移“
  • 企业知识管理面临的挑战与飞书知识问答的解决方案
  • 字节开源多模态文档图像解析模型:Dolphin
  • 【FastAPI】--基础教程
  • 使用compressorjs实现前端图片压缩
  • 文章记单词 | 第106篇(六级)
  • 提高 Maven 项目的编译效率
  • 苍穹外卖day1实战,Idea中Lombok编译时“找不到符号”,更改JDK版本最全流程,作者亲身尝试
  • 【JavaScript篇】对象武林:构造函数创世录与实例江湖风云
  • 大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
  • 锐化算子构建方法(机翻)
  • 皮尔森电流互感器测试浪涌电流时的一些典型问题
  • 【AS32X601驱动系列教程】GPIO_按键检测详解