由于权限错误,Android App报告“未安装”

时间:2012-07-27 21:46:15

标签: android eclipse android-manifest

在平板电脑上,我在Ubuntu下安装了一个在Eclipse中开发的apk。该应用程序适用于AVD,已安装在手机上并正常工作。 apk的安装没有错误,但是在启动App时它会给出一个“未安装”的toast消息。

在aLogCat输出中,我看到Launcher的WRITE_EXTERNAL_STORAGE的Permission拒绝消息。请注意,启动应用程序时未连接USB连接。

此外,我注意到aLogCat中的以下行,我注意到“-1”已添加到包名称中。

   New package installed in /data/app/com.company.AppName-1.apk 

清单中的行

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />

位于清单块中

   <android:permission="android.permission.WRITE_EXTERNAL_STORAGE">

在应用程序块中。

为什么这款适用于Android 2.3手机和Android 4.0.3 AVD,而不适用于Android 4.0.3平板电脑?

平台信息:Eclipse 3.7.2,平板电脑:Yarvik TAB461EUK;使用“ES File Explorer”安装

2 个答案:

答案 0 :(得分:0)

尝试从应用程序块中删除权限。我不确定,但从个人经验来看,ICS不支持已在主块中定义的应用程序块中的权限属性。它继承自主块。请告诉我们是否解决了这个问题。

我不知道为什么它适用于AVD,可能是因为AVD没有任何外部存储器。

答案 1 :(得分:0)

相关文档:

http://developer.android.com/guide/topics/manifest/manifest-intro.html仅描述主清单块(现在)

的权限元素

Changes per version州:

  

HONEYCOMB:当应用程序需要访问其组件(活动,接收者,服务,提供者)的权限时,当应用程序想要访问其自己的组件时,不再强制执行此权限。这意味着它可能需要对其本身不持有的组件的权限,并且仍然可以访问该组件。

Activity州:

  

客户端必须具有启动活动或以其他方式响应意图的权限的名称。如果未授予startActivity()或startActivityForResult()的调用者指定的权限,则其意图将不会传递给活动。

     

如果未设置此属性,则元素的权限属性设置的权限将应用于活动。如果两个属性均未设置,则活动不受权限保护。

对我来说不太清楚