¿Hay alguna forma de ignorar INSTALL_FAILED_VERSION_DOWNGRADE en la instalación de la aplicación con Android Debug Bridge?

4 minutos de lectura

avatar de usuario
AaronMT

Parece que el Android 4.2 más reciente ha introducido esta condición de error en la instalación cuando se intenta instalar un APK con una versión inferior. En versiones anteriores de Android, uno podría instalar APK más antiguos simplemente a través de adb install -r <link to APK>. Con fines de depuración, con frecuencia necesito volver a probar los APK más antiguos; y el -r flag reemplazaría la compilación anterior en versiones anteriores de Android. ¿Hay alguna solución aquí para ignorar? [INSTALL_FAILED_VERSION_DOWNGRADE]?

  • ¿Quieres decir, además de desinstalar la versión más nueva?

    – CommonsWare

    15 de noviembre de 2012 a las 17:21

  • Correcto; asumí la -r flag manejaría esto.

    – AaronMT

    15 de noviembre de 2012 a las 17:30

  • Esta pregunta también es válida para los casos en los que tiene (algo incorrectamente) compilaciones mal numeradas. Por ejemplo, tal vez su versión 1.0 de una caja de desarrollo tenga un código de versión más alto que la versión 2.0 de un servidor de compilación.

    – parkerfath

    18 de marzo de 2014 a las 0:59


Parece que la última versión de las herramientas de adb tiene un “indicador de permitir degradación” que no se muestra en la ayuda de adb, pero se muestra en la ayuda de “pm” en el dispositivo. Así que usa:
adb install -r -d <link to apk>

  • probado con adb install -rd <apkfile> que no funcionó. Su versino (con opciones separadas) funciona bien. ¡Gracias!

    – MarSoft

    22 de noviembre de 2015 a las 22:05

  • ¡Y parece estar documentado ahora! Simplemente no es que tengas que usar -r -d, -rd no funcionará

    – plaistos

    8 de enero de 2016 a las 12:44

  • Desde Android 7 (Nougat), adb install -d ya no funciona a menos que el paquete esté marcado como depurable. android.googlesource.com/platform/frameworks/base/+/921dd75

    – Darpan

    18 de junio de 2018 a las 10:28


  • Para mí funcionó cuando lo hice adb install -t -r -d app.apk

    – arekolek

    13 oct 2020 a las 6:53

  • @Darpan Entonces, para los APK firmados, es imposible instalar versiones anteriores sobre las nuevas, ¿verdad?

    – desarrollador de Android

    1 de marzo de 2021 a las 9:03

Puedes probar y usar adb uninstall -k <package> y luego instalar el apk anterior. De la guía de uso de adb:

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

Lo probé yo mismo con mi apk, y parece funcionar para la mayoría de los datos (algunos datos como RawContacts no se guardaron)

  • Parece que este comando en realidad no ejecuta la desinstalación, sino que simplemente muestra una advertencia. El comando para ejecutar realmente esto parece ser adb shell pm uninstall -k <package>.

    –Paul Lammertsma

    23 de diciembre de 2013 a las 13:40

  • Esto también es útil para degradar, si adb -d todavía se queja como lo hizo conmigo.

    – Puntero nulo

    09/04/2015 a las 21:45

¿Habilitó múltiples cuentas en su dispositivo (y envió su apk a través de ADB)? Si es así, debe eliminar el apk en cada cuenta. Después de la desinstalación completa, su empuje estará bien.

  • La restauración de la copia de seguridad a través de Titanium Backup no funcionó. La instalación nueva no funcionó. La instalación a través de APK y/o adb install no funcionó. Esto me costó 1,5 h y tu simple consejo funcionó. ¡Gracias!

    – Bentolor

    17 de septiembre de 2017 a las 9:02

  • Esto ayudó en la siguiente situación: desinstalé una aplicación y restauré una versión anterior con Titanium Backup. Después de una actualización automática de la aplicación, intenté volver a degradar con TB> colgué en la restauración; intenté instalar el APK manualmente> no funcionó con el error “Aplicación no instalada”. Así que mi conclusión es que TB parece instalar aplicaciones globalmente para todos los usuarios. Samsung S9, Android 9.

    – señor_brickalot

    6 de septiembre de 2020 a las 12:54

Para mí solo esto funciona bien:

adb install -t -r -d myapp.apk

Por cierto, la aplicación que quiero reemplazar y degradar es una aplicación del sistema

En mi caso, era una versión obsoleta de Google Play Services incluida con mi proyecto. Estoy usando Android Studio. Ejecuté una actualización en el SDK e importé la biblioteca actualizada, y ese error desapareció. Entonces, mi sugerencia: actualice a las últimas bibliotecas a las que hace referencia su proyecto.

avatar de usuario
sunita

También enfrenté el mismo problema. Se puede resolver con los pasos a continuación, que son más fáciles que eliminar cualquier apk del dispositivo:

1) Ejecute el comando “adb logcat | grep -i version” en la terminal

2) Busque la línea en particular, que se mostrará al final del logcat:

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

3) copie la versión actual (por ejemplo, 9109) y péguela en AndroidManifest.xml como se muestra a continuación:

android:versionCode="9109"

Ahora limpie y reconstruya la aplicación y debería funcionar bien.

avatar de usuario
Krsna

Intente desinstalar la versión instalada previamente de la aplicación usando-

adb uninstall com.package.name

y luego instala/ejecuta tu aplicación de nuevo

¿Ha sido útil esta solución?