Android डीबग ब्रिज के साथ इंस्टॉल किए गए एप्लिकेशन पर INSTALL_FAILED_VERSION_DOWNGRADE को अनदेखा करने का कोई तरीका है?


121

ऐसा लगता है कि सबसे हाल ही में एंड्रॉइड 4.2 ने इंस्टॉलेशन पर इस त्रुटि की स्थिति को पेश किया है जब कोई एपीके को कम संस्करण के साथ इंस्टॉल करने का प्रयास करता है। एंड्रॉइड के पूर्व संस्करणों में, कोई भी पुराने एपीके को बस के माध्यम से स्थापित करने में सक्षम होगा adb install -r <link to APK>। डिबगिंग उद्देश्यों के लिए, मुझे अक्सर पुराने एपीके का पुन: परीक्षण करने की आवश्यकता होती है; और -rध्वज पुराने Android संस्करणों में पुराने बिल्ड को बदल देगा। क्या इधर-उधर काम करना-इग्नोर करना है [INSTALL_FAILED_VERSION_DOWNGRADE]?


आपका मतलब है, नए संस्करण की स्थापना रद्द करने के अलावा?
कॉमन्सवेयर

सही बात; मैंने मान लिया कि -rझंडा यही संभाल लेगा।
आरोनोमट

5
यह प्रश्न उन मामलों के लिए भी मान्य है जहां आपके पास (कुछ गलत तरीके से) गलत तरीके से बिल्ड किए गए हैं। उदाहरण के लिए, शायद आपके डब्‍लू डब्‍बे में से v1.0 का निर्माण सर्वर से v2.0 की तुलना में अधिक वर्जनकोड होता है।
पार्करफैथ

जवाबों:


288

ऐसा प्रतीत होता है कि adb टूल्स के नवीनतम संस्करण में एक "डाउनग्रेड फ्लैग की अनुमति है" जो कि adb सहायता में नहीं दिखाया गया है, लेकिन यह डिवाइस पर "pm" सहायता में दिखाया गया है। तो उपयोग करें: adb install -r -d <link to apk>


3
कोशिश की adb install -rd <apkfile>जिसके साथ काम नहीं किया। आपका वर्चस्व (अलग किए गए विकल्पों के साथ) ठीक काम करता है। धन्यवाद!
MarSoft

1
और यह अब प्रलेखित किया जा रहा है! बस यह नहीं है कि आपको -r -d का उपयोग करना होगा, काम नहीं करेगा
plaisthos

उदाहरण के लिए, (डाउनग्रेड) 4.0.0.2 की स्थापना रद्द करने और संस्करण 3.9.5.3 स्थापित करने के लिए : adb स्थापित -r -d Waze_3.9.5.3.apk । इस तरह आप ऐप डेटा नहीं खोएंगे।
डेरेक गोगोल

12
Android 7 (Nougat) के बाद से, adb इंस्टॉल -d अब काम नहीं करता है जब तक कि पैकेज को डिबग करने योग्य के रूप में चिह्नित नहीं किया जाता है। android.googlesource.com/platform/frameworks/base/+/921dd75
डारप

20

आप कोशिश कर सकते हैं और उपयोग adb uninstall -k <package>और फिर पुराने APK को स्थापित कर सकते हैं । अदब उपयोग गाइड से:

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

मैंने इसे स्वयं अपने APK के साथ आज़माया है, और यह अधिकांश डेटा के लिए काम करता है (कुछ डेटा जैसे RawContacts को सहेजा नहीं गया था)


ऐसा प्रतीत होता है कि यह कमांड वास्तव में अनइंस्टॉल को निष्पादित नहीं करता है, इसके बजाय बस एक चेतावनी देता है। ऐसा प्रतीत होता है कि वास्तव में बहिष्कृत करने का आदेश adb shell pm uninstall -k <package>
पॉल लामर्ट्स्मा

यह डाउनग्रेड करने के लिए भी उपयोगी है, अगर adb -d अभी भी शिकायत करता है जैसा कि उसने मेरे लिए किया था।
पॉइंटर नल

14

क्या आपने अपने डिवाइस पर एक से अधिक खाते सक्षम किए (और ADB के माध्यम से अपने एपीके को पुश करें)? अगर ऐसा है तो आपको हर अकाउंट में एपीके हटाना होगा। पूरी तरह से अनइंस्टॉल करने के बाद आपका पुश ओके हो जाएगा।


टाइटेनियम बैकअप के माध्यम से बैकअप बहाल करने से काम नहीं चला। नए सिरे से काम नहीं हुआ। एपीके और / या एडीबी इंस्टॉल के माध्यम से इंस्टॉल करने से काम नहीं चला। यह मुझे 1,5h लागत और आपके सरल टिप ने चाल चली। धन्यवाद!
बेंटोलर

3

मेरे मामले में यह मेरी परियोजना के साथ शामिल Google Play Services का एक बासी संस्करण था। मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं। मैंने एसडीके पर एक अद्यतन चलाया, और अद्यतन पुस्तकालय को आयात किया, और वह त्रुटि दूर हो गई। तो मेरा सुझाव: नवीनतम पुस्तकालयों के लिए अद्यतन करें जो आपके प्रोजेक्ट द्वारा संदर्भित हैं।


1

ऐप का उपयोग करके पहले से इंस्टॉल किए गए संस्करण को अनइंस्टॉल करने की कोशिश करें-

adb uninstall com.package.name

और फिर अपने ऐप को फिर से इंस्टॉल / रन करें


0

आपने कोड की एक अलग प्रतिलिपि से स्थापित किया हो सकता है, जहां संस्करण संख्या उस प्रतिलिपि से अधिक थी जो आप अभी काम कर रहे हैं। किसी भी स्थिति में, वर्तमान में स्थापित प्रतिलिपि की स्थापना रद्द करें, या इंस्टॉल किए गए ऐप के लिए संस्करण संख्या निर्धारित करने के लिए सेटिंग> एप्लिकेशन खोलें, और AndroidManifest में उच्चतर होने के लिए अपने वर्जनकोड को बढ़ाएं।


1
इसे क्यों ठुकरा दिया गया? यह सबसे अच्छा जवाब नहीं हो सकता है, लेकिन यह किसी के लिए एक व्यवहार्य समाधान (और शायद सबसे आसान) जैसा लगता है जो इस के लिए नया है! कृपया इस तरह के उत्तरों के लिए टिप्पणी छोड़ दें, क्योंकि वे न केवल उत्तर देने वाले के लिए आवश्यक हैं , बल्कि उन पाठकों के लिए भी हैं जो बाद में इस प्रश्न पर जाते हैं। : - |
jedd.ahyoung

यह निश्चित रूप से कुछ है जो किया जा सकता है। यह पहले से ही स्पष्ट है। सवाल पूछ रहा है कि क्या इस चेक को छोड़ने और डाउनग्रेड की अनुमति देने का कोई तरीका है। और जवाब है हाँ। यह उत्तर मूल रूप से नहीं कहता है।
तस्मानी

0

मैंने भी इसी समस्या का सामना किया। इसे नीचे दिए गए चरणों से हल किया जा सकता है जो डिवाइस से किसी भी एपीके को हटाने से आसान हैं -

1) टर्मिनल पर रन कमांड "adb logcat | grep -i वर्जन"

2) विशेष लाइन के लिए देखें, जो लॉगकैट के अंत में दिखाई जाएगी -

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

3) वर्तमान संस्करण की प्रतिलिपि बनाएँ (उदाहरण के लिए 9109) और इसे AndroidManifest.xml में नीचे दिखाए अनुसार चिपकाएँ -

android:versionCode="9109"

अब आवेदन को साफ और पुनर्निर्माण करें और इसे ठीक काम करना चाहिए।


0

यह Google Play Services निर्भरता के साथ एक समस्या हो सकती है।

कभी-कभी, ऐसा नहीं है कि:

a) एप्लिकेशन का एक मौजूदा संस्करण स्थापित है, नया है या नहीं

बी) डिवाइस पर किसी अन्य उपयोगकर्ता खाते पर इंस्टॉल किए गए एप्लिकेशन का एक मौजूदा संस्करण है

तो त्रुटि संदेश सिर्फ फर्जी है।

मेरे मामले में, मेरे पास था:

implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'

लेकिन जब मैंने कोशिश की

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'

मुझे androidX संबंधित त्रुटियाँ मिलीं, क्योंकि मैंने अभी तक androidX में अपग्रेड नहीं किया था और ऐसा करने के लिए तैयार नहीं था। मैंने पाया कि नवीनतम 16.xy संस्करण काम करते हैं और मुझे कोई त्रुटि संदेश नहीं मिलता है। इसके अलावा, मैं बाद में इंतजार कर सकता हूं जब मैं तैयार हूं, androidX में अपग्रेड करने के लिए।

implementation 'com.google.android.gms:play-services-maps:16.+'
implementation 'com.google.android.gms:play-services-location:16.+'
implementation 'com.google.android.gms:play-services-gcm:16.+'

-3

Xiaomi के साथ समस्याओं का सामना कर रहे लोगों के लिए:

adb shell pm uninstall <package_name>

यह कुछ भी मदद नहीं करता है और इसे इस तरह से करने की आवश्यकता क्यों है, यह समझाया जाना चाहिए।
बिन्यामीन लिमांतो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.