Android应用程序使其他平台上的共享库可选

时间:2014-12-10 12:14:13

标签: android shared-libraries

我在我的应用程序中包含Epson ePOSPrint和StarIO库,以支持通过USB连接到Epson和Star POS打印机的打印。打印在两台打印机上都能很好地工作。

Epson库包含一个共享库lib/armeabi/libeposprint.so。考虑到文件夹armeabi的名称,我假设此库仅适用于具有ARM体系结构的设备,实际上在使用Android 5.0的基于Intel Atom的(虚拟)设备上安装应用程序失败

Installation error: INSTALL_FAILED_NO_MATCHING_ABIS

在运行Android版本低于5.0的基于Intel Atom的设备上,安装不会失败,但我不知道在尝试打印时会发生什么。

无论如何,由于该应用程序还支持Star打印机,Star库不依赖于本机共享库,我希望允许在基于Intel Atom的设备上安装应用程序,以便至少可以使用Star打印机。 / p>

是否有可能以某种方式使共享库可选,因此安装不会失败?这是一个好主意,因为这会使应用程序部分损坏吗?

1 个答案:

答案 0 :(得分:1)

  

是否有可能以某种方式使共享库可选,因此安装不会失败?

我知道这样做的唯一方法是通过CPU架构拥有单独的APK,例如具有split机制的Android Studio / Gradle for Android优惠。

  

这是一个好主意,因为这会使应用程序部分损坏吗?

这取决于什么"部分破坏"装置

如果您的意思是"功能减少",因为您使用Build来检测您所处理的CPU并且如果您不在支持您的库的设备上正常降级,那么&#34} #39;合理。

如果你的意思是"应用程序已经完成了打击"那就不太好了。 : - )