可选的共享库

Optional shared library

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

对于这些特殊设备,我有一个 armeabi 架构的共享库。在具有这种架构的设备中,应用程序运行良好(无论它们是否具有 UHF reader)。但是,对于其他架构的设备,应用程序甚至没有安装,并出现 INSTALL_FAILED_NO_MATCHING_ABIS 错误。

我想知道有没有办法让这个库可选,让其他架构的设备直接忽略它。 如果我可以使用

显式加载库(或不加载,取决于体系结构),那就没问题了
System.loadLibrary("DeviceAPI");

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

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