Есть ли способ игнорировать INSTALL_FAILED_VERSION_DOWNGRADE при установке приложения с Android Debug Bridge?

Похоже, что последний Android 4.2 представил это условие ошибки при установке, когда вы пытаетесь установить APK с более низкой версией. В предыдущих версиях Android можно было установить старый APK просто через adb install -r <link to APK>. Для целей отладки мне часто нужно повторно протестировать старые APK; и флаг -r заменит старую версию старых версий Android. Есть ли работа вокруг, чтобы игнорировать [INSTALL_FAILED_VERSION_DOWNGRADE]?

Ответ 1

Похоже, что в последней версии инструментов adb есть "разрешить флаг понижения", который не показан в справке adb, но он отображается в справке "pm" на устройстве. Поэтому используйте: adb install -r -d <link to apk>

Ответ 2

Вы можете попробовать и использовать adb uninstall -k <package>, а затем установить старший apk. Из руководства по использованию adb:

  adb uninstall [-k] <package> - remove this app package from the device
                                 ('-k' means keep the data and cache directories)

Я пробовал это сам с моим apk, и, похоже, он работает для большинства данных (некоторые данные, такие как RawContacts, не были сохранены)

Ответ 3

Включили ли вы несколько учетных записей на своем устройстве (и нажмите apk через ADB)? Если это так, вам нужно удалить apk в каждой учетной записи. После полной деинсталляции ваш push будет в порядке.

Ответ 4

В моем случае это была устаревшая версия Служб Google Play, включенных в мой проект. Я использую Android Studio. Я запустил обновление SDK и импортировал обновленную библиотеку, и эта ошибка исчезла. Поэтому мое предложение: обновить до последних библиотек, на которые ссылается ваш проект.

Ответ 5

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

Ответ 6

Я также столкнулся с той же проблемой. Его можно решить с помощью следующих шагов, которые проще, чем удаление любого apk с устройства -

1) Запустите команду "adb logcat | grep -i version" на терминале

2) Найдите конкретную строку, которая будет показана в конце logcat -

"Downgrade detected: Update version code 5011  is older than current 9109"

3) скопируйте текущую версию (например, 9109) и вставьте ее в AndroidManifest.xml, как показано ниже -

android:versionCode="9109"

Теперь очистите и перестройте приложение, и оно должно работать нормально.