Sembra che il più recente Android 4.2 abbia introdotto questa condizione di errore durante l'installazione quando si tenta di installare un APK con una versione inferiore. Nelle precedenti versioni di Android, si sarebbe in grado di installare APK meno recenti semplicemente tramite adb install -r <link to APK>
. Per motivi di debug, ho spesso bisogno di rivedere i vecchi APK; e il flag -r
sostituirà la versione precedente nelle versioni precedenti di Android. C'è un work-around qui per ignorare [INSTALL_FAILED_VERSION_DOWNGRADE]
?C'è un modo per ignorare INSTALL_FAILED_VERSION_DOWNGRADE sull'installazione dell'applicazione con Android Debug Bridge?
risposta
sembra che la l'ultima versione di strumenti adb ha un "consenti contrassegno di downgrade" che non è mostrato nella guida di adb, ma è mostrato nella guida "pm" sul dispositivo. Quindi utilizzare: adb install -r -d <link to apk>
Provato con 'adb install -rd
E sembra essere documentato ora! Solo che non devi usare -r -d, -rd non funziona – plaisthos
Ad esempio, per disinstallare (downgrade) Waze 4.0.0.2 e installare la versione 3.9.5.3: ** adb install -r -d Waze_3.9.5.3 .apk **. In questo modo non perderai i dati dell'app. – derekg
Hai attivato più account sul tuo dispositivo (e apri il tuo apk tramite ADB)? Se è così, devi rimuovere l'apk in ogni account. Dopo la disinstallazione completa, la tua spinta sarà OK.
Il ripristino del backup tramite Titanium Backup non ha funzionato. L'installazione recente non ha funzionato. L'installazione tramite APK e/o l'installazione di adb non ha funzionato. Questo mi è costato 1,5 ore e il tuo semplice consiglio ha fatto il trucco. Grazie! –
Puoi provare a utilizzare adb uninstall -k <package>
e quindi installare l'apk precedente. Dalla guida utilizzo adb:
adb uninstall [-k] <package> - remove this app package from the device
('-k' means keep the data and cache directories)
ho provato io stesso con il mio apk, e sembra funzionare per la maggior parte dei dati (alcuni dati come RawContacts non è stato salvato)
Sembra che questo comando non esegua effettivamente la disinstallazione, ma produca semplicemente un avviso. Il comando per l'effettiva esecuzione di questo sembra essere 'adb shell pm uninstall -k
Questo è utile anche per il downgrade, se adb -d continua a lamentarsi come ha fatto per me. –
Nel mio caso si trattava di una versione obsoleta di Google Play Services inclusa nel mio progetto. Sto usando Android Studio. Ho eseguito un aggiornamento su SDK e ho importato la libreria aggiornata e quell'errore è andato via. Quindi il mio suggerimento: aggiornare le ultime librerie a cui fa riferimento il tuo progetto.
È possibile che sia stato installato da una copia separata del codice in cui il numero di versione era superiore alla copia con cui si sta lavorando in questo momento. In entrambi i casi, disinstallare la copia correntemente installata oppure aprire Impostazioni> App per determinare il numero di versione per l'app installata e incrementare il proprio versionCode per essere più elevato in AndroidManifest.
Perché è stato downvoted? Potrebbe non essere la risposta migliore, ma sembra una soluzione valida (e forse la più semplice) per qualcuno che è nuovo a questo! * Si prega di * lasciare commenti per risposte come questa, in quanto sono * essenziali * non solo per il rispondente, ma per i lettori che visitano questa domanda in seguito. : - | –
Questo è ovviamente qualcosa che può essere fatto. È già ovvio. La domanda è chiedere se c'è un modo per saltare questo controllo e consentire il downgrade. E la risposta è si. Questa risposta fondamentalmente dice no. – tasomaniac
Ho anche affrontato lo stesso problem.It può essere risolto con la procedura riportata di seguito, che sono più facile che l'eliminazione di qualsiasi apk dal dispositivo -
1) Eseguire il comando "adb logcat | grep -i versione" sul terminale
2) Cercare la riga particolare, che verrà mostrato alla fine della logcat -
"Downgrade detected: Update version code 5011 is older than current 9109"
3) copiare la versione corrente (ad esempio 9109) e incollarlo in AndroidManifest.xml come mostrato di seguito -
android:versionCode="9109"
Ora pulire e ricostruire l'applicazione e dovrebbe funzionare correttamente.
- 1. : Errore di installazione: INSTALL_FAILED_VERSION_DOWNGRADE
- 2. adb (android debug bridge) problemi dopo l'aggiornamento OSX Yosemite
- 3. Modo autoritativo per ignorare onMeasure()?
- 4. CodeKit - un modo per ignorare js?
- 5. Esiste un modo migliore per ignorare try/catch in modalità debug nello studio di visualizzazione
- 6. C'è un modo per ignorare un singolo avviso di FindBugs?
- 7. C'è un modo per ignorare l'incompatibilità di tipo in dattiloscritto?
- 8. Debug Android con minifyEnabled true
- 9. C'è un modo per ignorare la risposta del modulo?
- 10. Esiste un modo per ignorare un'azione di MVC Controller?
- 11. Retrofit per Android: come ignorare baseUrl
- 12. Debug di app native NDK per Android
- 13. AbstractFactory Versus Bridge Pattern
- 14. C'è un modo per ignorare un tipo di file con Webpack?
- 15. crea playlist iTunes con bridge di scripting
- 16. debug app android con ionic- cordova
- 17. QT e bridge per lo sviluppo Web
- 18. bridge iOS vs bridge_transfer
- 19. Ambiente di debug apparentemente inutile per Android
- 20. OrientDB PHP/Gremlin Bridge
- 21. Esempio di un esempio di bridge
- 22. Un modo per comunicare con WebView in Android?
- 23. C'è un modo per usare setOnClickListener con uno Spinner Android?
- 24. Esiste un modo per utilizzare l'espresso con Lollipop (Android 21)?
- 25. Bridge Host USB al dispositivo
- 26. Android: debug del kernel con KGDB
- 27. Java <-> C Bridge
- 28. Un buon modo per eseguire il debug di nullPointerException
- 29. Sklearn: Esiste un modo per eseguire il debug di Pipelines?
- 30. Ignorare i file dall'APK Android
Intendi, oltre a disinstallare la versione più recente? – CommonsWare
corretto; Supponevo che il flag '-r' potesse gestirlo. – AaronMT
Questa domanda è valida anche per i casi in cui si hanno (in modo errato) build con numeri errati. Per esempio. forse la tua v1.0 da una finestra di sviluppo ha un versionCode superiore a v2.0 da un server di build. – parkerfath