Android 百度地图 java.lang.UnsatisfiedLinkError: Couldn't load vi_voslib: findLibrary returned null

现在的App,都像跟风狗一样,只要是热门的功能,都加上,导致最后一个小小的App,有了聊天功能,有了分享功能,有了拍照功能,有了语音功能……,实力足够的话(或者网上有现成代码),就他妈差点做个操作系统进去了。

而其中一些功能,需要借助第三方,这就涉及到一个第三方选择的问题,我一般不喜欢小公司的产品,不是看不起小公司,主要是小公司的产品质量确实不能保证,而且产品的延续性得不到保障。

今天做给我们的App加地图功能,使用系统的地图是不现实的了(考虑到某些机器上面没有地图应用),最后决定使用百度地图,说实话,我用了百度的不少API,集成都相对简单,而且可靠。可地图API把我弄惨了。我完全按照说明文档和demo来搞的,但是就是一直报以下错误:

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load vi_voslib: findLibrary returned null

网上查了一些说明,没有解决,后来去官网,官网说可能是混淆的问题,我加了混淆过滤,也不起作用(而且一看这个错误,就是没有加载到vi_voslib的原因,而不是混淆),百般无奈,转战高德地图,发现高德地图和百度地图的形式太他妈一样了,好多类名都一样,看来又是挖IT民工墙脚啊。但是高德地图的key有效期只有30天,后面好像要收费,没办法,又转过来搞百度地图,代码没动,在同事的手机上可以正常运行,但是我的手机就不行,还是保上面的错误,搞不懂啊。后来根据以前做NDK的经验,发现.so文件在libs\armeabi和libs\armeabi-v7a都应该有副本,具体原因好像是应对不同的cpu型号,于是我就把.so文件在libs\armeabi-v7a下也放了一份,尼玛,解决了……

后面遇到同样问题的孩子,看到这篇文章,要谢恩啊,我现在都还搞不懂为什么就解决了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
java.lang.UnsatisfiedLinkError: Could not load SWT library是一个常见的错误,它表示在加载SWT库时出现了问题。这个错误通常有以下几个原因: 1. 缺少SWT库:这个错误可能是由于缺少SWT库文件引起的。SWT是一个用于构建Java图形用户界面的工具包,它需要与操作系统和Java虚拟机兼容的本机库文件。如果缺少这些库文件,就会导致加载失败并出现UnsatisfiedLinkError错误。 2. 错误的SWT库版本:如果使用的SWT库版本与操作系统或Java虚拟机不兼容,也会导致加载失败并出现UnsatisfiedLinkError错误。确保使用与操作系统和Java虚拟机兼容的SWT库版本。 3. 错误的库路径:如果SWT库文件没有正确配置到Java虚拟机的库路径中,也会导致加载失败并出现UnsatisfiedLinkError错误。确保将SWT库文件正确配置到java.library.path系统属性中。 解决这个错误的方法包括: 1. 检查SWT库文件是否存在:确保SWT库文件存在于系统中,并且与操作系统和Java虚拟机兼容。 2. 检查SWT库文件的版本:确保使用与操作系统和Java虚拟机兼容的SWT库版本。 3. 配置库路径:将SWT库文件所在的路径添加到java.library.path系统属性中,以便Java虚拟机能够找到并加载它。 4. 检查依赖项:如果SWT库依赖于其他库文件,确保这些库文件也存在于系统中,并且与操作系统和Java虚拟机兼容。 5. 检查环境变量:如果SWT库依赖于环境变量,确保这些环境变量已正确设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值