2012-11-15 23 views
98

En son Android 4.2 sürümü, daha düşük bir sürüme sahip bir APK yüklemeyi denediğinde, yükleme sırasında bu hata durumunu tanıttı gibi görünüyor. Android'in önceki sürümlerinde, eski APK'ları yalnızca adb install -r <link to APK> aracılığıyla yükleyebileceksiniz. Hata ayıklama amacıyla, çoğunlukla eski APK'ları yeniden test etmem gerekir. ve eski Android sürümlerinde eski yapının yerine -r bayrağı geçecekti. [INSTALL_FAILED_VERSION_DOWNGRADE]'u görmezden gelmek için bir iş var mı?Android Debug Bridge ile uygulama yüklemesinde INSTALL_FAILED_VERSION_DOWNGRADE öğesini yok saymanın bir yolu var mı?

+0

Daha yeni sürümü kaldırmanın yanı sıra mı? – CommonsWare

+0

Doğru; Bunu -r 'bayrağıyla halledebilirim. – AaronMT

+4

Bu soru aynı zamanda (yanlış bir şekilde yanlış numaralanmış) hatalı sayılara sahip olduğunuz durumlar için de geçerlidir. Örneğin. belki de bir dev kutusundan gelen v1.0 değeriniz, bir kurulum sunucusundan v2.0'dan daha yüksek bir versionCode değerine sahiptir. – parkerfath

cevap

232

Görünen verilerin çoğu için iş gibi görünüyor adb araçlarının en son sürümü, adb yardımında gösterilmeyen "izin düşürme bayrağına izin ver" seçeneğine sahiptir, ancak cihazdaki "pm" yardımında gösterilir. Öyleyse: adb install -r -d <link to apk>

+1

Çalışmıyor olan adb install -rd 'ile denendi. Sizin versino (ayrılan seçeneklerle) iyi çalışıyor. Teşekkürler! – MarSoft

+1

Ve şimdi belgelenmiş gibi görünüyor! Sadece -r -d kullanmanız gerekmediği için, -rd çalışmaz – plaisthos

+0

Örneğin, Waze 4.0.0.2'yi kaldırmak ve yüklemek 3.9.5.3'ü yüklemek için: ** adb install -r -d Waze_3.9.5.3 .apk **. Bu şekilde uygulama verilerini kaybetmezsiniz. – derekg

13

Cihazınızda Çoklu hesap özelliğini etkinleştirdiniz (ve APK'nizi ADB ile itin)? Eğer öyleyse, her hesapta apk kaldırmak zorunda. Tamamen kaldırıldıktan sonra, itiniz tamam olur.

+0

Titanium Backup ile yedeklemeyi geri alma çalışmadı. Taze yükleme işe yaramadı. APK ve/veya adb yüklemesi ile yükleme işlemi işe yaramadı. Bu bana 1,5 saat maliyeti ve basit ipucu hile yaptı. Teşekkürler! –

16

adb uninstall -k <package> modelini ve ardından eski apk'yi yüklemeyi deneyebilirsiniz. adb kullanım kılavuzunda itibaren :

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

benim apk'de ile kendim denedim ve (RawContacts gibi bazı veriler kaydedilmedi)

+0

Görünüşe göre, bu komut aslında kaldırma işlemini yürütmez, bunun yerine yalnızca uyarı verir. Aslında bu işlemi gerçekleştirme komutu, 'adb shell pm uninstall -k 'şeklinde görünüyor. –

+0

Bu, adb -d'nin benim için olduğu gibi hala şikayet ederse, bu da not düşürülmesi için kullanışlıdır. –

1

Benim durumumda, projemde bulunan eski Google Play Hizmetleri sürümüydi. Android Studio kullanıyorum. SDK'da bir güncelleme yaptım ve güncellenmiş kütüphaneyi içe aktardım ve bu hata gitti. Benim önerim: projeniz tarafından başvurulan en son kitaplıklara güncelleştirin.

0

Sürüm numarasının şu anda üzerinde çalıştığınız kopyadan daha yüksek olduğu kodun ayrı bir kopyasından yüklenmiş olabilirsiniz. Her iki durumda da, yüklü olan kopyayı kaldırın ya da yüklü uygulamanın sürüm numarasını belirlemek için Ayarlar> Uygulamalar'ı açın ve AndroidChickest'te daha yüksek olmak için versionCode'unuzu artırın. Terminal

tarihinde | "grep -i versiyonu adb logcat"

1) Run komutu -

+1

Bu neden reddedildi? Bu en iyi cevap olmayabilir, ancak buna yeni başlayan biri için uygulanabilir bir çözüm (ve belki de en kolay) gibi görünüyor! * Lütfen * bunun gibi cevaplar için yorum bırakın, çünkü bunlar sadece * cevaplayıcı için değil, daha sonra bu soruyu ziyaret eden okuyucular için. : - | –

+0

Bu elbette ki yapılabilecek bir şey. Zaten açık. Soru, bu kontrolü atlayıp düşürmeye izin vermenin bir yolu olup olmadığını sormaktır. Ve cevap evet. Bu cevap temelde hayır diyor. – tasomaniac

0

Ben de aynı problem.It cihazdan herhangi apk silme daha kolay olan aşağıdaki adımlarla çözülebilir karşı karşıya

2) logCat sonunda gösterilir özellikle hat, arayın -

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

3) ör 9109 için geçerli sürümü (kopyalama) ve aşağıda gösterildiği gibi AndroidManifest.xml yapıştırın -

android:versionCode="9109" 

Şimdi uygulamayı temizleyin ve yeniden oluşturun ve iyi çalışmalıdır.