首页 > 解决方案 > 可选的共享库

问题描述

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

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

我想知道是否有任何方法可以使库成为可选,以便其他架构的设备简单地忽略它。如果我可以使用显式加载库(或不加载,取决于架构)就可以了

System.loadLibrary("DeviceAPI");

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

标签: androidshared-librariescpu-architecture

解决方案


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


推荐阅读