0

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

在 aLogCat 输出中,我看到启动器的 WRITE_EXTERNAL_STORAGE 权限拒绝消息。请注意,当我启动应用程序时,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文件资源管理器”安装

4

2 回答 2

0

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

我不知道为什么它可以在 AVD 上运行,可能是因为 AVD 没有任何外部存储。

于 2012-07-27T21:52:30.020 回答
0

相关文档:

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

每个版本的更改状态:

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

活动状态:

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

如果未设置此属性,则元素的权限属性设置的权限适用于活动。如果两个属性都没有设置,则活动不受权限保护。

我不是很清楚

于 2012-08-03T14:38:26.707 回答