我目前正在使用Xamarin.Forms应用程序,该应用程序使用移动设备的本机条形码扫描功能。我已经集成了来自不同制造商(卡西欧和电装)的两个不同的设备SDKS。
主启动器为SplashActivity
,它显示初始屏幕,检测设备信息并启动以下其中一项:
CasioActivity
DensoActivity
这些活动负责订阅扫描由相应设备引发的事件。
Denso集成是使用制造商提供的DLL文件完成的,而Casio集成是通过Xamarin Bindings项目following this tutorial完成的。
部署到Casio可以正常工作,但是当我在Denso单元上部署应用程序时,我在Visual Studio中收到以下错误消息:
install_failed_missing_shared_library device.sdk is required
我认为,Casio SDK(*。aar文件)强迫该应用程序仅在Casio设备上运行。我尝试将以下内容添加到应用程序清单中:
<uses-library android:name="device.sdk" android:required="false" />
,还尝试将UsesLibrary
属性添加到所有活动中,以使device.sdk
是可选的,但没有任何效果。似乎绑定项目在部署时将以下内容注入清单文件:
<uses-library android:name="device.sdk" android:required="true" />
有什么方法可以防止将上述行插入清单文件?
我想使应用程序与这两个单元兼容。
答案 0 :(得分:0)
我通过修改aar文件解决了这个问题。
android:required
属性设置为false。.zip
更改为.aar
Jars
文件夹下