失败[INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]

时间:2016-01-14 14:04:36

标签: android cordova command cordova-cli

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

命令:

phonegap run android --verbose --stacktrace

错误:

  

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

     

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

     

失败[INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]

3 个答案:

答案 0 :(得分:32)

问题在于,您尝试安装的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)

<强>更新

事实证明,这不是降级App版本的正确错误消息。事实上,它是完全独立的东西。我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设备批准所有权限   安装时间然后用户必须在应用程序时批准它们   请求许可。如果用户安装了应用程序 - auto   授予所有权限 - 然后它没有要求使用它们,并且   然后使用相同的权限更新应用程序,但是   使用较低的targetSdk?

     

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

答案 1 :(得分:9)

<强>解决方案:

我设法通过从我的设备卸载我的应用程序来摆脱错误。

<强>原因:

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

答案 2 :(得分:0)

我在VS2015中使用TACO和使用特定仿真器配置文件调试Android时出现此错误:VS Emulator 10.1“Marshmallow(6.0.0)XHDPI Tablet。我正在处理的项目是作为应用程序安装在该特定配置文件上的,因为我一直在使用它进行调试。我通过卸载并重新安装该特定配置文件解决了这个问题:工具 - &gt;用于Android的Visual Studio模拟器 - &gt;卸载配置文件。重新安装的配置文件不再包含我的应用程序,错误消失了。这是我想,VS Emulator等同于从远程设备卸载应用程序。