我们目前正在修改我们的应用程序清单,以明确使用uses-feature
属性来声明其对硬件和软件API的所有依赖关系。
由于我们希望用户拥有移动互联网,因此我们将android.hardware.telephony
设置为true
,但现在该应用无法在模拟器上安装。错误消息是:
Failure [INSTALL_FAILED_MISSING_FEATURE]
没有其他信息,即使在设备日志中也没有,但我可以通过反复试验找出电话功能导致它。
由于模拟器支持电话功能(您甚至可以模拟调度呼叫),为什么会中断?即使它正确地报告它不支持电话,uses-feature
是否意味着针对真实设备,而不是仿真器?
我现在对这个属性感到非常困惑,因为its documentation似乎暗示它只会影响Android Market的过滤规则。我无法看到它提到的uses-feature
对应用程序的可安装性有直接影响,这似乎超出了文档所属的仅仅是声明/信息性质。
毕竟使用它可能不是一个好主意?我们的构建服务器不再执行,因为现在安装到模拟器总是失败...
答案 0 :(得分:0)
我有一个使用电话的应用程序并且可以在2.2模拟器中正常工作,我认为你已经在清单中将required属性设置为false:
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
如果是这种情况,我的猜测是你的清单中声明的另一个功能或权限在模拟器中不存在并导致错误。通过反复试验来追捕它。
答案 1 :(得分:0)
基本上您需要使用支持更多功能的更新Emulater,或者您可以执行以下操作:
1.评论或删除Manifest XML文件中的以下行
<!-- COMMENT ME -->
<uses-feature android:name="android.hardware.telephony" />
OR
2.添加以下内容:
<!-- UNCOMMENT ME and add android:required="false" -->
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
如果你做得对,你应该好好去。