2012-12-10 29 views
112

मैं वर्तमान में एक छोटे एंड्रॉइड एप्लिकेशन को संकलित और परीक्षण करने का प्रयास कर रहा हूं।एंड्रॉइड एमुलेटर: स्थापना त्रुटि: INSTALL_FAILED_VERSION_DOWNGRADE

मैं ग्रहण का उपयोग कर रहा हूं, और एसडीके 4.2 (एपीआई स्तर 17) स्थापित है। मैं

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" /> 

निर्धारित किया है, हालांकि मैं भी विभिन्न मूल्यों की कोशिश की है (अर्थात 17/17)।

मैं किसी भी GoogleAPI फ़ंक्शंस का उपयोग नहीं करता, न ही मैं उन कार्यों का उपयोग करता हूं जो API स्तर 8 में उपलब्ध नहीं हैं या कम से कम मुझे उस संबंध में कोई संकलन त्रुटियां या चेतावनियां नहीं मिलती हैं।

जब मैं प्रोजेक्ट संकलित करता हूं और इसे एंड्रॉइड 2.2.1 चलाने वाले वास्तविक डिवाइस पर चलाता हूं तो एप्लिकेशन ठीक चलता है। लेकिन जब मैं Android 4.2, एपीआई स्तर 17 के साथ एक एमुलेटर पर आवेदन (एंड्रॉयड वर्चुअल डिवाइस) चलाने का प्रयास मैं निम्नलिखित त्रुटि मिलती है:

[2012-12-10 21:10:29 - SoftKeyboard] Installation error: INSTALL_FAILED_VERSION_DOWNGRADE 
[2012-12-10 21:10:29 - SoftKeyboard] Please check logcat output for more details. 
[2012-12-10 21:10:29 - SoftKeyboard] Launch canceled! 

Logcat तथापि खाली है। मेरे पास वास्तव में कोई सुराग नहीं है, यह त्रुटि भी है ...

उत्तर

290

इसका मतलब है कि आप एक ही पैकेज के साथ एक ऐप इंस्टॉल करने की कोशिश कर रहे हैं जो एमुलेटर पर पहले से इंस्टॉल है, लेकिन जिसकी आप कोशिश कर रहे हैं इंस्टॉल में निम्न संस्करण कोड है (आपके संस्करण संख्या के लिए पूर्णांक मान)।

आपने कोड की एक अलग प्रति से स्थापित किया हो सकता है जहां संस्करण संख्या उस प्रतिलिपि से अधिक थी जो आप अभी काम कर रहे हैं। या तो मामले में, या तो:

  • वर्तमान में स्थापित प्रतिलिपि

  • की स्थापना रद्द या स्थापित अनुप्रयोग के लिए संस्करण संख्या निर्धारित करने के लिए अपने फ़ोन की सेटिंग को खोलने> अनुप्रयोग प्रबंधक, और बढ़ाने के अपने <manifest android:versionCode में अधिक होने की AndroidManifest।

  • या https://stackoverflow.com/a/13772620/632951

+1

धन्यवाद! यह बिल्कुल ठीक था - मैंने पुराने एसडीके से सॉफ़्टकीबोर्ड उदाहरण के साथ प्रत्याशित किया, और ऐसा लगता है कि एक सॉफ़्टकीबोर्ड उदाहरण पहले से ही स्थापित है (डिफ़ॉल्ट रूप से ?!) एम्यूलेटर उपकरणों में (लेकिन एक अलग, बाद के संस्करण में)। मेरे आवेदन का नाम बदलने के बाद सबकुछ अपेक्षित काम करता है ... – ndbd

+0

धन्यवाद ... मैं एपीआई डेमो के साथ काम कर रहा था और यह एप्लिकेशन हमेशा अनुकरणकों पर स्थापित होता है .. – Khushboo

+1

@Alexander: क्या आप इस जवाब को -d ध्वज शामिल करने के लिए अपडेट कर सकते हैं? –

27

पहले एमुलेटर से आपके आवेदन की स्थापना रद्द करें:

adb -e uninstall your.application.package.name 

फिर आवेदन फिर से स्थापित करने का प्रयास।

+8

या किसी कनेक्टेड भौतिक डिवाइस के लिए, 'adb -s DEVICESERIALNUMBER your.application.package.name' को अनइंस्टॉल करें, जहां 'DEVICESERIALNUMBER'' adb devices -l' का उपयोग करके पाया जा सकता है। –

+0

यदि आप किसी एप्लिकेशन को डीबग करना चाहते हैं तो एक अनावश्यक कदम की तरह लगता है। –

7

यह मेरे प्रोजेक्ट में हो रहा था क्योंकि मैं संस्करण कोड सेट करने के लिए एक XML संसाधन का उपयोग कर रहा था।

AndroidManifest.xml: 
android:versionCode="@integer/app_version_code" 

app.xml: 
<integer name="app_version_code">64</integer> 

यह platform-tools R16 के रूप में अब यह उचित पूर्णांक का संकल्प लिया जा रहा है, adb के पूर्व संस्करण में एक समस्या नहीं था, लेकिन। आप adb -r का उपयोग कर से स्थापित फिर से मजबूर सकते हैं या प्रकट में एक शाब्दिक का उपयोग करके पूरी तरह से समस्या से बचने के:

android:versionCode="64" 
+0

यह मेरे लिए समस्या थी, और मैं मानता हूं कि यह संस्करण कोड को ठीक से हल नहीं कर रहा है, यहां तक ​​कि इसे बढ़ा रहा है (उदा: 65) INSTALL_FAILED_VERSION_DOWNGRADE –

4

यह तब हो सकता है जब से एक हस्ताक्षरित रिहाई APK के शीर्ष पर एक डिबग/अहस्ताक्षरित APK स्थापित करने का प्रयास प्ले स्टोर।

H:\>adb install -r "Signed.apk" 
2909 KB/s (220439 bytes in 0.074s) 
     pkg: /data/local/tmp/Signed.apk 
Success 

H:\>adb install -r "AppName.apk" 
2753 KB/s (219954 bytes in 0.078s) 
     pkg: /data/local/tmp/AppName.apk 
Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 

इस का हल uninstall है और उसके बाद पुनः स्थापित करने या आईडीई से चलाने के कर रहे हैं।

+0

से नहीं बचता है मैं डाउनवॉटर नहीं हूं, लेकिन मुझे लगता है कि यह एकमात्र कारण नहीं है ऐसा क्यों हो सकता है। – Viccari

45

तुम भी स्थापित करने के लिए एशियाई विकास बैंक -d ध्वज जोड़ने पर विचार कर सकते हैं। इसे इस त्रुटि को अनदेखा करना चाहिए।

+6

अनियंत्रित लेकिन काम करने लगता है। मुझे इसे अलग-अलग लिखना था-डी, इसे संयोजन के रूप में -r के रूप में काम नहीं किया था। – mhsmith

+3

धन्यवाद! इसका काम: adb install -r -d abc.apk –

+2

यह अब दस्तावेज़ित है: '-d: संस्करण कोड डाउनग्रेड की अनुमति दें'। अभी भी '-r' – wisbucky

1
इस

जब मैं ग्रहण में एक Android स्टूडियो अनुप्रयोग आयातित मुझे क्या हुआ।

मुझे पता चला कि एंड्रॉइड स्टूडियो प्रोजेक्ट से आयात करते समय andoridmanifest.xml फ़ाइल को थोड़ा संशोधित करने की आवश्यकता है। मैंने एक नया टेस्ट प्रोजेक्ट बनाया, और इसे मैच बनाने के लिए शीर्षकों पर कॉपी किया। voila, हल हल हो गया।

1

यह त्रुटि gfx फ़ाइलों के कई प्रकार के साथ मेरी एंड्रॉयड परियोजना में प्रकट होता है। अंत में मैनिफेस्ट फ़ाइल में कोई बदलाव स्वीकार नहीं किया गया था।

क्योंकि android उपकरणों के बारे में ज्ञान की मेरी कमी मैं भूल जाते हैं अपने परीक्षण उपकरण एक दूसरे उपयोगकर्ता है। इसलिए मैं भी इस उपयोगकर्ता खाते के लिए एप्लिकेशन को हटाना होगा और यह काम करता इस उपयोगकर्ता को अपने ऐप के एक स्थापित संस्करण है।

2

से ... \ एंड्रॉयड -22 \ एंड्रॉयड \ सामग्री \ बजे \ PackageManager.java

/** 
* Installation return code: this is passed to the {@link IPackageInstallObserver} by 
* {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} if 
* the new package has an older version code than the currently installed package. 
* @hide 
*/ 
public static final int INSTALL_FAILED_VERSION_DOWNGRADE = -25; 

अगर नए पैकेज वर्तमान में स्थापित पैकेज से एक पुराने संस्करण कोड है एसडीके src कोड के अनुसार।

+0

से अलग होने की आवश्यकता है उसी संस्करण कोड के साथ नहीं होना चाहिए हालांकि –

1

INSTALL_FAILED_VERSION_DOWNGRADE

सभी एंड्रॉइड ऐप्स में एक पैकेज नाम है। पैकेज का नाम विशिष्ट रूप से डिवाइस पर ऐप की पहचान करता है। यदि पैकेजनाम ऐप के रूप में पहले से डिवाइस पर स्थापित किया गया है तो यह त्रुटि दिखा रहा है।

  1. आप अपने डिवाइस पहले और तो ताजा स्थापित से आवेदन की स्थापना रद्द कर सकते हैं।
  2. प्रत्येक बार जब कोई नया संस्करण जारी किया जाता है तो आप आसानी से नंबर बढ़ा सकते हैं
+1

आप प्रत्येक रिलीज़ पर संस्करण कोड को सही करना चाहिए। हालांकि, रिलीज से पहले विकास के समय पर नहीं। साथ ही, आप पहले से स्थापित एपीके (अनइंस्टॉल किए बिना) के शीर्ष पर उसी संस्करण कोड के साथ एक एपीके स्थापित करने में सक्षम होना चाहिए। मेरा झुकाव समस्या संसाधन संदर्भ संदर्भ कोड था - देखें: https://stackoverflow.com/a/14946938/431296 –

2

Marshmallow में, मैं मैं की खोज समाधान के लिए खोज रहे इस त्रुटि,

Installation error: INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE 
Please check logcat output for more details. 
Launch canceled! 

मिला है और यहां आया था। मैं एप्लिकेशन को नष्ट कर दिया, लेकिन अभी भी नेक्सस 6. में यह समस्या है बाद में, कि में पाया

Settings > Apps > [My app name] have to removed for all user. 
1

मैं एक ही समस्या हो रही थी। मैं त्रुटि हो रही थी जब मैंने अपने Android उपकरण एमुलेटर नहीं में भागने की कोशिश की।

sudo ionic run android 

मैं

adb uninstall com.mypackage.name 
0

चलाकर इसे ठीक करने के आप इस कोशिश कर सकते हैं कर रहा हूँ: adb install -r -d -f your_Apk_path

0

बात यह है कि मारे गए मैं था पर रखा मैं इस अनुप्रयोग है कि पता नहीं था कि मेरे अतिथि खाते के लिए स्थापित किया गया था (हालांकि मैंने इसे अन्य खातों के लिए अनइंस्टॉल कर दिया था ..)

तो मैं अनुप्रयोग प्रबंधक में अनुप्रयोग के लिए खोज की है, और केवल सभी उपयोगकर्ताओं

enter image description here के लिए स्थापना रद्द करें पर क्लिक किया

0

बस पिछले APK स्थापना रद्द करें और अपडेट किए गए APK स्थापित

संबंधित मुद्दे