ndb*_*dbd 136 java sdk android
我目前正在尝试编译和测试一个小型Android应用程序.
我正在使用Eclipse,并安装了SDK 4.2(Api Level 17).我已经定了
<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" />
Run Code Online (Sandbox Code Playgroud)
虽然我也尝试过不同的值(即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!
Run Code Online (Sandbox Code Playgroud)
然而Logcat是空的.我真的不知道,这个错误甚至意味着什么......
Ale*_*cas 342
这意味着您正在尝试使用与已在模拟器上安装的应用程序相同的packageName安装应用程序,但您尝试安装的应用程序具有较低的versionCode(版本号的整数值).
您可能已从代码的单独副本安装,其中版本号高于您正在使用的副本.在任何一种情况下,要么:
卸载当前安装的副本
或者打开手机的"设置">"应用程序管理器"以确定已安装应用程序的版本号,并<manifest android:versionCode 在AndroidManifest中将其增加到更高.
gru*_*czy 54
您还可以考虑向-dadb install 添加标记.它应该忽略这个错误.
小智 29
首先从模拟器中卸载您的应用程序:
adb -e uninstall your.application.package.name
Run Code Online (Sandbox Code Playgroud)
然后尝试再次安装该应用程序.
这是在我的项目中发生的,因为我使用XML资源来设置版本代码.
AndroidManifest.xml:
android:versionCode="@integer/app_version_code"
app.xml:
<integer name="app_version_code">64</integer>
Run Code Online (Sandbox Code Playgroud)
这在先前版本中不是问题adb,但是,从platform-toolsr16开始,这不再被解析为适当的整数.您可以adb -r使用清单中的文字强制重新安装或完全避免问题:
android:versionCode="64"
Run Code Online (Sandbox Code Playgroud)
从设备中卸载当前的 apk,然后运行
sudo adb uninstall com.package.name
Run Code Online (Sandbox Code Playgroud)
这是通过pc卸载apk的命令。
然后重试构建
尝试在Play商店的签名发行APK之上安装调试/未签名APK时,可能会发生这种情况。
H:\>adb install -r "Signed.apk"
2909 KB/s (220439 bytes in 0.074s)
pkg: /data/local/tmp/Signed.apk
Success
H:\>adb install -r "AppName.apk"
2753 KB/s (219954 bytes in 0.078s)
pkg: /data/local/tmp/AppName.apk
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
Run Code Online (Sandbox Code Playgroud)
解决方案是先卸载,然后从IDE重新安装或重新运行它。