失败 [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]

Posted

技术标签:

【中文标题】失败 [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]【英文标题】:Failure [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE] 【发布时间】:2016-04-19 21:29:29 【问题描述】:

我在CMD中输入了下面的命令,命令返回了命令下面的错误。

命令:

phonegap run android --verbose --stacktrace

错误:

错误:无法在设备上启动应用程序:

错误:无法将 apk 安装到设备:pkg: /data/local/tmp/MainActivity-debug.apk

【问题讨论】:

它非常有用的查询。我正在寻找这个。 【参考方案1】:

问题在于,您尝试安装的 APK 版本比您设备上已有的版本低。

卸载肯定会为您解决这个问题。

ADB 允许更大的灵活性adb install -r -d <apk path>,但我不确定 Phonegap 是否具有该功能。

adb install [-lrtsdg] <file>
   - push this package file to the device and install it
     (-l: forward lock application)
     (-r: replace existing application)
     (-t: allow test packages)
     (-s: install application on sdcard)
     (-d: allow version code downgrade)
     (-g: grant all runtime permissions)

更新:

事实证明,这不是降级应用程序版本的正确错误消息。事实上,它是完全独立的东西。我found this link准确地说明了情况:

tl;dr 你不能一开始就欺骗新的 Android 6 权限模型 发布带有 targetSdk 23 的 APK 将授予所有权限 运行时,然后发布 targetSdk 22 或更低的新版本。 您将收到 INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE 错误。

我正在使用 targetSdk 23 (Android 6 Marshmallow) 开发应用程序时 让我震惊的是,这可能是新的安全问题 Android 权限模型。 Android 6 设备批准所有权限 安装时间,然后用户必须在应用程序时批准它们 请求许可。如果用户安装了应用程序怎么办 - 自动 授予所有权限 - 然后它没有要求使用它们,并且 然后之后应用程序被更新为相同的权限,但是 使用较低的 targetSdk?

我花了几分钟时间创建了一个针对 SDK 级别 23 的应用 并添加了精细位置权限(ACCESS_FINE_LOCATION)。然后我 安装并运行该应用程序。该应用未请求访问权限 位置经理。然后我将 SDK 级别设置为 22 并尝试 安装应用程序。幸好无法安装。我有一个错误 说失败 [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]。

【讨论】:

-r 代表什么?我在the android debug bridge documentation of developer.android.com 中找不到它。您能否也说出您对“版本”的含义。有点模糊。 我更新了我的问题以反映选项的含义。版本是指您的应用程序版本。如果您安装了 App 版本 3,并尝试安装 App 版本 2。如果没有 hte 降级标志,它将不允许它。 我测试了你的理论。我将我的应用程序版本从 2 更改为 1,我得到了一个不同的错误:[INSTALL_FAILED_VERSION_DOWNGRADE] 所以我很困惑。此错误是否与我之前遇到的错误相同:[INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]?我很好奇这些错误之间有什么区别。 看来我错了。错误消息非常相似。不过我找到了真正的原因。生病编辑我的答案。 它非常有用的答案。我正在寻找这个。【参考方案2】:

解决方案:

我设法通过从我的设备上卸载我的应用程序来消除错误。

原因:

可能导致错误的原因是我使用SDK Manager 更新了我的Android SDK。

【讨论】:

【参考方案3】:

我在 VS2015 中使用 TACO 并使用特定模拟器配置文件对 Android 进行调试时遇到此错误:VS Emulator 10.1" Marshmallow (6.0.0) XHDPI Tablet。我正在处理的项目作为应用程序安装在该特定配置文件上,因为我一直在使用它进行调试。我通过卸载并重新安装该特定配置文件解决了这个问题:工具 -> 适用于 Android 的 Visual Studio 模拟器 -> 卸载配置文件。重新安装的配置文件不再包含我的应用程序并且错误消失了。这是 VS模拟器相当于从远程设备上卸载应用程序,我猜。

【讨论】:

以上是关于失败 [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]的主要内容,如果未能解决你的问题,请参考以下文章

Java笔记-快速失败and安全失败

VMware Player 12安装失败

Hashicorp Vault - 读取失败:解密失败:密码:消息身份验证失败

解决uWsgi 安装失败问题

vc2012安装失败因为某些必需的组件失败

颤振包失败,版本解决失败