关于ArcGIS Android的在x86和x64系统中兼容性的问题与解决方案

本文介绍了一种解决在不同设备上运行ArcGIS Android应用时出现的启动问题的方法。当从平板切换到三星Note5手机时,由于CPU架构不匹配导致应用无法启动。通过修改build.gradle文件来支持多种CPU架构解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我们都知道,在配置ArcGIS Android SDK时,需要在jniLibs目录下放置三个文件夹,分别是armeabi、armeabi-v7a、x86三个文件夹,ArcGIS Android针对目标设备不同CPU型号,选择不同文件夹中的so文件。在开发某一项目我使用ArcGIS Android10.2.9版本时,一开始是基于平板开发的,开发设备是LENOVO YOGA Tablet2。编译调试时通过adb shell getprop ro.product.cpu.abi命令,我们知道当前使用的是x86文件夹,即可知道当前调试设备CPU是32位的。

  

  换成三星Note5手机后,出现了无法启动APP的情况,查看日志确定了错误来源于java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.klose.ranqi-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.klose.ranqi-1/lib/arm64, /data/app/com.example.klose.ranqi-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libruntimecore_java.so"。根据判断三星Note5手机CPU是64位的,因此认为问题是调试设备系统CPU不同造成的。

  遇到这个问题的解决方案如下:

  在该模块的build.gradle中android目录下添加下面的代码

1 splits {
2     abi {
3         enable true
4         reset()
5         include 'x86', 'x86_64', 'armeabi-v7a', 'armeabi'
6         universalApk false
7     }
8 }

  添加splits目录,使app在打包时分割apk,选择适应设备平台的apk生成应用程序。再次编译打包,显示成功了。

  

  在切换调试设备平台时遇到这样的问题,不妨使用这样的方法尝试解决一下吧。

转载于:https://www.cnblogs.com/KloseJiao/p/7082305.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值