मैन्युअल रूप से अपडेट किया गया एपीके इंस्टॉल करना "हस्ताक्षर पहले से स्थापित संस्करण से मेल नहीं खाता" के साथ विफल हो जाता है


81

मैंने कुछ दोस्तों के बीच साझा करने के लिए एक मूर्खतापूर्ण ऐप बनाया है। इसे ऐप-स्टोर पर डालने की आवश्यकता नहीं है।

मैंने पहला apk(हस्ताक्षरित) बनाया , इसे एक वेब-सर्वर पर अपलोड किया और सभी ने अच्छी तरह से काम किया।

एक छोटी सी समस्या उत्पन्न हुई, मैंने इसे ठीक किया, फिर से बनाया, उसी कीस्टॉर के साथ हस्ताक्षर किया और इसे फिर से अपलोड किया। अब ऐसा लगता है कि मैं नए से इंस्टॉल नहीं कर पा रहा हूं apk। डीबगर मुझे बताता है:

signatures do not match the previously installed version

इसलिए मैंने ऐप ड्रावर को खोलकर "अनइंस्टॉल" बटन पर खींचकर पुराने संस्करण की स्थापना रद्द कर दी। "सेटिंग्स -> ऐप्स" खोलते समय, मैं इसे कहीं भी नहीं देखता हूं। मुझे अपने डिवाइस पर ऐप के कोई निशान नहीं दिख रहे हैं।

फिर भी मुझे अभी भी उपरोक्त त्रुटि संदेश मिल रहा है।

क्या यह संभव है कि कुछ जानकारी अभी भी डिवाइस पर लिंजर है? क्या कोई तरीका है जिससे मैं इसे सत्यापित कर सकता हूँ?


जवाबों:


169

हां यह संभव है अगर किसी तरह आपके पुराने एप्लिकेशन को 100% हटाया नहीं गया या उसका डेटा नहीं हटाया गया।

प्रयत्न:

adb uninstall "com.yourapp.yourapp"

यदि आप वास्तव में "com.yourapp.yourapp" के प्रतिस्थापन के रूप में नहीं जानते हैं, तो आप केवल एंड्रॉइड स्टूडियो खोलते हैं, अपना ऐप चलाएं जबकि यह एक डिवाइस से जुड़ा है और फिर डिबग विंडो को देखें।

इसे कहते हैं:

 Waiting for device.
 Target device: samsung-sm_t531-xxxxxxxxx
 Uploading file
 local path: C:\Users\myapp\app\build\outputs\apk\myapp.apk
 remote path: /data/local/tmp/com.myapp.myapp
 Installing com.myapp.myapp
 DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myapp.myapp"
 pkg: /data/local/tmp/com.myapp.myapp
 Success

com.myapp.myapp इस मामले में उस पैकेज का नाम है जिसे आपको अनइंस्टॉल करने के लिए उपयोग करना चाहिए।


1
यह वास्तव में मुद्दा था। मैंने इसे एक बार एंड्रॉइड स्टूडियो से सीधे फोन पर तैनात किया था। ऐसा लगता है कि इस संस्करण को ठीक से हटाया नहीं गया था। एक अंतिम प्रश्न: क्या एंड्रॉइड स्टूडियो से ऐसा करने का कोई तरीका है? या वहाँ से सीधे adb चलाते हैं?
— पूर्वोत्थान

हां, बस अपने एंड्रॉइड ऐप से शेल कमांड को निष्पादित करने का तरीका जानने की कोशिश करें। यह सूत्र एक अच्छा प्रारंभिक बिंदु है: stackoverflow.com/questions/20932102/…
— एहसान

नहीं नहीं नहीं। मेरे ऐप से कमांड नहीं चल रहा है;) मैं सोच रहा था कि क्या मैं adb"एंड्रॉइड स्टूडियो" से सीधे चला सकता हूं ।
— पूर्वानुमा

2
यह तब अच्छा है जब आप डेवलपर हैं .. लेकिन किसी भी अंतिम उपयोगकर्ता के लिए, यदि वही समस्या होती है, तो आपको अनुसरण करने की आवश्यकता है: मुद्दा यह था कि एंड्रॉइड के नए संस्करणों में, किसी विशिष्ट तरीके से अनइंस्टॉल करना केवल उस विशिष्ट उपयोगकर्ता के लिए नहीं है। इसका उत्तर सेटिंग> एप्लिकेशन> विशेष एप्लिकेशन के अंदर जाएं और फिर ऊपरी दाईं ओर "..." मेनू आइटम से "सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें" का चयन करना है।
— अंकितरॉक्स

मुझे हुआ क्योंकि मैंने पैकेज का नाम बदल दिया है। अनइंस्टॉल करने का किया
— टोटका

23

मेरे पास एक ही मुद्दा था और adb uninstallसमाधान मेरे काम नहीं आया।

क्या काम था

  • अपने डिवाइस पर सेटिंग्स-> ऐप्स पर जाएं
  • अपना एप्लिकेशन चुनें, और मेनू में "सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें" चुनें

यहां तक ​​कि अगर मैंने पहले ऐप को अनइंस्टॉल कर दिया था तब भी यह सूची में था।


हां, यह तब भी हो सकता है जब आपके डिवाइस पर कई उपयोगकर्ता खाते हों और ऐप एक से अधिक पर इंस्टॉल हो। यदि आप इसे एक उपयोगकर्ता के लिए अनइंस्टॉल करते हैं, तो यह केवल उस खाते से "अनलिंक" हो जाता है। लेकिन यह डिस्क पर रहता है। यह पूरी तरह से तभी हटाया जाएगा जब प्रत्येक उपयोगकर्ता ने इसे अनइंस्टॉल कर दिया हो।
— प्रकुमा

1
"सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें" पूरी तरह से काम किया। अन्य सभी उपयोगकर्ताओं को हटा दिया गया)))
— Inoy

मैं केवल एक एमुलेटर पिक्सेल 3 29 का उपयोग करके "सभी उपयोगकर्ताओं के लिए अनइंस्टॉल" नहीं "अनइंस्टॉल" देखता हूं
— जूली पिक्सी

6

मेरे लिए, यदि ऐप को वितरित करने के लिए है, तो adbसमाधान एक नहीं है: आप किसी के दोस्त को एंड्रॉइड एसडीके को उनकी मशीन पर स्थापित करने के लिए नहीं कह सकते हैं!

यहां जाने का तरीका टैग में विशेषता AndroidManifest.xmlको बढ़ाना और (जो मूल तत्व है) को बढ़ाना है।android:versionCode<manifest>

यह आपके इंस्टॉल किए गए एप्लिकेशन को अपडेट करेगा


1
समस्या वास्तव में विकास के दौरान एंड्रॉइड स्टूडियो के माध्यम से डिवाइस पर ऐप इंस्टॉल करने के कारण हुई थी। एक नया एपीके बनाना और इसे वितरित करना सभी के लिए पूरी तरह से ठीक था लेकिन मैं। तो adb solution ठीक था।
— उडुमा

4

यदि आप कनेक्ट किए गए परीक्षणों का संचालन करते समय इसे देख रहे हैं, तो सुनिश्चित करें कि जब adb के माध्यम से अनइंस्टॉल किया जा रहा हो तो शामिल करें। क्योंकि ऐप के माध्यम से अनइंस्टॉल करना -> सेटिंग्स को परीक्षण पैकेज से छुटकारा नहीं मिलता है

adb uninstall your.broken.package.test

यदि आप बस के माध्यम से स्थापना रद्द करते हैं

adb uninstall your.broken.package

आपका परीक्षण पैकेज अभी भी रहेगा। यह केवल कुछ था जिसे मैंने कमांड कमांड लाइन का उपयोग करते हुए देखा था, एंड्रॉइड स्टूडियो के भीतर इस समस्या को नहीं आया है


3

अपने फोन या एमुलेटर से पुराने ऐप को अनइंस्टॉल करें और फिर से चलाने की कोशिश करें।


यह कोई उत्तर नहीं है। एसओ ने कहा कि उन्होंने पहले ही यह कोशिश की है और समस्या अभी भी है।
— बेनूरोब

1

मुझे यह प्रमाणपत्र प्राप्त करते समय रिलीज़ को स्थापित करने की कोशिश करते समय वह त्रुटि मिली।

इसके साथ तय किया गया: ऐप ग्रैडल कार्य अनइंस्टॉल करें और फिर फिर से इंस्टॉल करें


0

एकता उपयोगकर्ताओं के लिए जो इस सवाल पर आते हैं, सबसे अच्छा जवाब वास्तव में @ ईशान द्वारा ऊपर दिया गया है

adb uninstall "com.yourapp.yourapp"

मैंने पहले से ही अपने Android डिवाइस पर एक पिछला संस्करण स्थापित किया था, फिर Development Buildयूनिटी> बिल्ड सेटिंग्स में चयन किया जिसके कारण एपीके को एक अलग हस्ताक्षर का उपयोग करना पड़ा। यदि आप Android GUI के माध्यम से स्थापित करते हैं, तो यह वास्तव में सब कुछ नहीं हटाता है ताकि आपको ADB का उपयोग करना पड़े।

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