Android Emulator: Ошибка установки: 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 Virtual Device) с Android 4.2, Api Level 17, я получаю следующую ошибку:

[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, однако, пуст. Я действительно не знаю, что означает эта ошибка...

Ответ 1

Это означает, что вы пытаетесь установить приложение с тем же именем пакета, что и приложение, которое уже установлено на эмуляторе, но тот, который вы пытаетесь установить, имеет более низкий код версии (целочисленное значение для вашего номера версии).

Возможно, вы установили из отдельной копии кода, где номер версии был выше, чем копия, с которой вы работаете сейчас. В любом случае:

  • удалить установленную копию

  • или откройте свой телефон "Настройки" > "Диспетчер приложений", чтобы определить номер версии для установленного приложения и увеличьте свой <manifest android:versionCode выше в AndroidManifest.

  • или fooobar.com/questions/53729/...

Ответ 2

Вы также можете добавить флаг -d для установки adb. Следует игнорировать эту ошибку.

adb install -r -d abc.apk

Ответ 3

Сначала удалите приложение из эмулятора:

adb -e uninstall your.application.package.name

Затем попробуйте снова установить приложение.

Ответ 4

Это происходило в моем проекте, потому что я использовал 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"

Ответ 5

Это может произойти при попытке установить APK отладки/без знака поверх подписанного APK выпуска из магазина Play.

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.

Ответ 6

INSTALL_FAILED_VERSION_DOWNGRADE

Все приложения для Android имеют имя пакета. Имя пакета уникально идентифицирует приложение на устройстве. Если такое же имя_пакета как приложение, которое уже установлено на устройстве, то это ошибка.

  • Вы можете удалить приложение с вашего устройства сначала и затем установите новый.
  • Вы можете просто увеличить число на каждый каждый раз, когда будет выпущена новая версия.

Ответ 7

В Marshmallow я получил эту ошибку,

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. 

Ответ 8

В соответствии с кодом sdk src из... \android-22\android\content\pm\PackageManager.java

/**
 * 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;

если новый пакет имеет более старый код версии, чем установленный в данный момент пакет.

Ответ 9

вы можете попробовать следующее: adb install -r -d -f your_Apk_path

Ответ 10

это случилось со мной, когда я импортировал приложение Android Studio в eclipse.

Я выяснил, что файл andoridmanifest.xml должен быть слегка изменен при импорте из проекта студии Android. Я создал новый тестовый проект и скопировал заголовки, чтобы они совпадали. вуаля, проблема решена.

Ответ 11

Эта ошибка появляется в моем проекте Android с несколькими типами файлов gfx. В конце не было изменений в файле манифеста.

Из-за отсутствия знаний об устройствах Android я забыл, что у моего тестового устройства есть второй пользователь. Этот пользователь также имеет установленную версию моего приложения, поэтому мне также нужно удалить приложение для этой учетной записи пользователя, и оно работает.

Ответ 12

У меня была такая же проблема. Я получал ошибку, когда пытался запустить в своем устройстве Android не эмулятор.

sudo ionic run android 

Я могу исправить это, запустив

adb uninstall com.mypackage.name

Ответ 13

вещь, которая продолжала меня убивать, заключалась в том, что я не знал, что это приложение было установлено для моей гостевой учетной записи (хотя я удалил ее для других учетных записей..)

поэтому я искал приложение в диспетчере приложений и просто нажал на удаление для всех пользователей

введите описание изображения здесь

Ответ 14

Просто удалите предыдущий Apk и установите обновленный APK