一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述Android模拟器:安装错误:INSTALL_FAILED_VERSION_DOWNGRADE相关的知识,希望能为你提供帮助。
我目前正在尝试编译和测试一个小型android应用程序。
我正在使用Eclipse,并安装了SDK 4.2(Api Level 17)。我已经定了
<
uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" />
虽然我也尝试过不同的值(即17/17)。
我不使用任何GoogleAPI函数,也不使用API??级别8中没有的函数。或者至少我没有收到任何编译错误或警告。
当我编译项目并在运行Android 2.2.1的真实设备上运行它时,应用程序运行正常。但是当我尝试在Android 4.2,Api Level 17的模拟器(Android虚拟设备)上运行应用程序时,我收到以下错误:
[2012-12-10 21:10:29 - SoftKeyboard] Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
[2012-12-10 21:10:29 - SoftKeyboard] Please check logcat output for more details.
[2012-12-10 21:10:29 - SoftKeyboard] Launch canceled!
【Android模拟器(安装错误:INSTALL_FAILED_VERSION_DOWNGRADE)】然而Logcat是空的。我真的不知道,这个错误甚至意味着什么......
答案这意味着您正在尝试使用与已在模拟器上安装的应用程序相同的packageName安装应用程序,但您尝试安装的应用程序具有较低的versionCode(版本号的整数值)。
您可能已从代码的单独副本安装,其中版本号高于您正在使用的副本。在任何一种情况下,要么:
- 卸载当前安装的副本
- 或者打开手机的设置>
应用程序管理器以确定已安装应用程序的版本号,并在AndroidManifest中将
< manifest android:versionCode
增加到更高。 - 或者https://stackoverflow.com/a/13772620/632951
我想出从android studio项目导入时需要稍微修改一下andoridmanifest.xml文件。我创建了一个新的测试项目,并复制了标题以使其匹配。瞧,问题解决了。
另一答案这个错误出现在我的android项目中,有多种gfx文件。最后,没有接受清单文件的更改。
因为我对Android设备缺乏了解,所以我忘了我的测试设备有第二个用户。此用户还有我的应用程序的安装版本,所以我还必须删除此用户帐户的应用程序,它的工作原理。
另一答案我遇到了同样的问题。当我试图在我的Android设备中运行而不是模拟器时,我收到错误。
sudo ionic run android
我可以通过运行来解决这个问题
adb uninstall com.mypackage.name
另一答案继续杀死我的事情是,我不知道这个应用程序是为我的访客帐户安装的(虽然我已经为其他帐户卸载了它..)
所以我在应用管理器中搜索了应用程序,只需单击所有用户的卸载
文章图片
另一答案只需卸载以前的Apk并安装更新的APK即可
另一答案您还可以考虑将
-d
标志添加到adb install。它应该忽略这个错误。另一答案首先从模拟器中卸载您的应用程序:
adb -e uninstall your.application.package.name
然后尝试再次安装该应用程序。
另一答案这是在我的项目中发生的,因为我使用XML资源来设置版本代码。
AndroidManifest.xml:
android:versionCode="@integer/app_version_code"app.xml:
<
integer name="app_version_code">
64<
/integer>
这在
adb
的先前版本中不是问题,但是,从platform-tools
r16开始,这不再被解析为正确的整数。您可以使用adb -r
强制重新安装,也可以使用清单中的文字完全避免此问题:android:versionCode="64"
另一答案尝试在Play商店的已签名版本APK上安装调试/未签名APK时,可能会发生这种情况。
H:>
adb install -r "Signed.apk"
2909 KB/s (220439 bytes in 0.074s)
pkg: /data/local/tmp/Signed.apk
SuccessH:>
adb install -r "AppName.apk"
2753 KB/s (219954 bytes in 0.078s)
pkg: /data/local/tmp/AppName.apk
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
对此的解决方案是uninstall,然后从IDE重新安装或重新运行它。
另一答案
INSTALL_FAILED_VERSION_DOWNGRADE所有Android应用都有一个包名。包名称唯一标识设备上的应用程序。如果相同的packageName作为已安装在设备上的应用程序,那么此错误显示。
- 您可以先从设备卸载应用程序,然后再安装新设备。
- 每次发布新版本时,您只需将数字增加一即可。
Installation error: INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE
Please check logcat output for more details.
Launch canceled!
寻找解决方案我搜索并来到这里。我删除了应用程序,但仍然在Nexus 6中出现此问题。后来发现,在
Settings >
Apps >
[My app name] have to removed for all user.
另一答案根据来自...android-22androidcontentpmPackageManager.java的sdk src代码
/**
* Installation return code: this is passed to the {@link IPackageInstallObserver} by
* {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} if
* the new package has an older version code than the currently installed package.
* @hide
*/
public static final int INSTALL_FAILED_VERSION_DOWNGRADE = -25;
如果新软件包的版本代码比当前安装的软件包旧。
另一答案你可以试试这个:
adb install -r -d -f your_Apk_path
推荐阅读
- Android应用程序使用Facebook登录无法安装Facebook App
- 如果Android版本在“X”下如何隐藏ImageButton()
- 如何解决android studio的编译错误()
- 试图调用方法'applyForce'
- 如何只用月份和年份字段显示android的日期选择器()
- Android Studio(SDK目录不存在)
- Android设备监视器无法在Ubuntu 17.10中打开
- 如何用android studio 2.3.2下载旧版本的android sdk平台()
- 如何使用Ionic 3为Android API 21构建apk(它继续为API 23构建,即使我在config.xml中将目标sdk更改为21)