現在、小さな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レベル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!
ただし、Logcatは空です。このエラーが何を意味するのか、私にはまったく手がかりがありません.
これは、エミュレーターに既にインストールされているアプリと同じpackageNameでアプリをインストールしようとしているが、インストールしようとしているアプリのversionCode(バージョン番号の整数値)が低いことを意味します。
バージョン番号が現在作業しているコピーよりも大きいコードの別のコピーからインストールした可能性があります。いずれの場合も、次のいずれかです。
現在インストールされているコピーをアンインストールします
または、お使いの携帯電話の[設定]> [アプリケーションマネージャー]を開いて、インストールされているアプリのバージョン番号を確認し、<manifest Android:versionCode
を増やしてAndroidManifestで高くします。
-d
フラグをadbインストールに追加することも検討できます。このエラーは無視する必要があります。
最初に、エミュレーターからアプリケーションをアンインストールします。
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
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]
これに対する解決策は、 アンインストール にしてから、IDEから再インストールまたは再実行することです。
マシュマロでは、このエラーが発生しました。
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.
INSTALL_FAILED_VERSION_DOWNGRADE
すべてのAndroidアプリにはパッケージ名があります。パッケージ名は、デバイス上のアプリを一意に識別します。同じpackageNameが既にデバイスにinstalledであるアプリと同じ場合、このerrorを表示しています。
これを試すことができます:adb install -r -d -f your_Apk_path
...\Android-22\Android\content\pm\PackageManager.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;
新しいパッケージに現在インストールされているパッケージよりも古いバージョンコードがある場合。
このエラーは、複数の種類のgfxファイルがあるAndroidプロジェクトに表示されます。最後に、マニフェストファイルの変更は受け入れられませんでした。
Androidデバイスに関する知識が不足しているため、テストデバイスに2番目のユーザーがいることを忘れています。このユーザーにはアプリのインストールされたバージョンもあるため、このユーザーアカウントのアプリも削除する必要があり、機能します。
私は同じ問題を抱えていました。 Androidデバイスで実行しようとしたときにエラーが発生しましたエミュレータではありません。
Sudo ionic run Android
これを実行することで修正できます
adb uninstall com.mypackage.name
これは、Android StudioアプリをEclipseにインポートしたときに起こりました。
Android studioプロジェクトからインポートする場合、andoridmanifest.xmlファイルを少し変更する必要があることがわかりました。新しいテストプロジェクトを作成し、見出しをコピーして一致させました。出来上がり、問題は解決しました。
以前のApkをアンインストールして、更新されたAPKをインストールするだけです