我在CMD中输入了以下命令,该命令在命令下面返回了错误。
命令:
phonegap run android --verbose --stacktrace
错误:
错误:无法在设备上启动应用程序:
错误:无法将apk安装到设备:pkg:/data/local/tmp/MainActivity-debug.apk
失败[INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE]
答案 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)
答案 2 :(得分:0)
我在VS2015中使用TACO和使用特定仿真器配置文件调试Android时出现此错误:VS Emulator 10.1“Marshmallow(6.0.0)XHDPI Tablet。我正在处理的项目是作为应用程序安装在该特定配置文件上的,因为我一直在使用它进行调试。我通过卸载并重新安装该特定配置文件解决了这个问题:工具 - &gt;用于Android的Visual Studio模拟器 - &gt;卸载配置文件。重新安装的配置文件不再包含我的应用程序,错误消失了。这是我想,VS Emulator等同于从远程设备卸载应用程序。