可选共享库

时间:2019-02-26 11:50:46

标签: android shared-libraries cpu-architecture

我正在开发必须与所有Android设备架构兼容的应用程序。另外,其中一些设备可能具有我想利用的UHF阅读器功能。

对于这些特殊设备,我有一个armeabi体系结构的共享库。在具有这种架构的设备中,该应用程序可以正常运行(无论它们是否具有UHF读取器)。但是,对于具有其他体系结构的设备,该应用程序甚至没有安装,出现INSTALL_FAILED_NO_MATCHING_ABIS错误。

我想知道是否有任何方法可以使该库成为可选的,以便其他体系结构的设备仅忽略它。 如果我可以使用

显式加载库(也可以不加载,取决于体系结构)就可以了
System.loadLibrary("DeviceAPI");

但是我不知道如何解决安装问题。我想避免生成多个APK。

1 个答案:

答案 0 :(得分:0)

好吧,这当然不是最好的方法,但是它似乎有效。我只是为每个缺少的平台创建了一个虚拟共享库,然后将.so文件重命名为与我的armeabi库文件相同的名称。该应用程序现已安装在每个平台上,我只需要在初始化时捕获适当的异常或检查设备架构即可。