डिवाइस पर मैन्युअल रूप से हस्ताक्षरित एपीके इंस्टॉल नहीं किया जा सकता है, "ऐप इंस्टॉल नहीं किया गया" त्रुटि हुई


107

मैं अपने ऐप को GooglePlay पर प्रचारित करना चाहता हूं, लेकिन पहले मैं साइन इन किए गए एपीके के साथ अंतिम परीक्षण करना चाहूंगा ताकि यह सुनिश्चित हो सके कि उपयोग किए गए सभी एपीआई कुंजी रिलीज़ संस्करण (जीएमएपी, फेसबुक, आदि) के साथ सही तरीके से काम कर रहे हैं

इसलिए मैंने अपनी रिलीज़ कुंजी के साथ अपने ऐप का केवल एक हस्ताक्षरित संस्करण बनाया और जब मैंने डिवाइस को ऐप इंस्टॉल करने का प्रयास किया तो मुझे एक त्रुटि मिली:

यहां छवि विवरण दर्ज करें

मैंने डिवाइस पर एपीके को कॉपी करने और एपीके इंस्टॉलर ऐप के साथ इंस्टॉल करने की कोशिश की है

अजीब बात यह है कि जब मैं डिबग हस्ताक्षर कुंजी के साथ एक ही प्रक्रिया करता हूं, तो सब कुछ ठीक है, मैं एप्लिकेशन इंस्टॉल और चला सकता हूं।

यहाँ प्रक्रिया के चरण हैं :

मैं रिलीज कुंजी का चयन करता हूं , पासवर्ड टाइप करता हूं ।

यहाँ प्रक्रिया के चरण हैं:

मैं डिबगिंग के बजाय रिलीज बिल्ड प्रकार का चयन करता हूं

मैं डिबगिंग के बजाय रिलीज बिल्ड प्रकार का चयन करता हूं

बस के मामले में मैं भी ग्रेडिंग में हस्ताक्षर करने वाली कुंजी को परिभाषित करता हूं, लेकिन मुझे यह स्वीकार करना चाहिए कि मुझे नहीं पता कि यह आवश्यक है।

बस के मामले में मैं भी ग्रेडिंग में हस्ताक्षर करने वाली कुंजी को परिभाषित करता हूं, लेकिन मुझे यह स्वीकार करना चाहिए कि मुझे नहीं पता कि यह आवश्यक है।

मैंने सात सात बार की तरह कोशिश की, तो मुझे लगता है कि यह समस्या केवल गलत पासवर्ड नहीं है , मैं भी मानक डिबग एंड्रॉइड साइनिंग कुंजी के साथ यह काम कर सकता हूं।

कृपया सहायता करें, अगर आप कर सकते हैं।


1
सलाम। यह उत्तर आपकी समस्या का समाधान कर सकता है: http://stackoverflow.com/a/42745459/1676736
सईद अबोफज़ल फ़ातिमी

मैं भी ऐसी ही समस्या का सामना कर रहा हूँ। असली कारण क्या था? क्या आपको इसका पता चला? @ अदम वराहिगी
रोहित सिंह

@RohitSingh नीचे उत्तर, योग्य।
एडम वराहिगी

मेरा मतलब है कि ऐप को पूरी तरह से अनइंस्टॉल भी नहीं किया गया था? या इसकी एक चीज़ केवल Android 5.0 (या इससे भी ऊपर) है।
रोहित सिंह

1
@RohitSingh मेरी समस्या ठीक उत्तर के रूप में थी। एप्लिकेशन को फोन पर किसी अन्य उपयोगकर्ता के लिए इंस्टॉल किया गया था, और मैंने इसे एक अलग उपयोगकर्ता के साथ नहीं देखा था। इसलिए मुझे इसे "ऑल यूज़र्स" के लिए अनइंस्टॉल करना पड़ा
एडम वर्हेगी

जवाबों:


81

आप एंड्रॉइड 5.0 या इससे अधिक के डिवाइस का उपयोग कर सकते हैं।

बस सेटिंग्स पर जाएं -> ऐप्स -> अपने ऐप पर क्लिक करें। ---> एक्शन बार मेनू में ऐप इंफो पेज पर "अनइंस्टॉल फॉर ऑल यूजर्स" नामक एक विकल्प होगा उस पर क्लिक करें। आपका ऐप पूरी तरह से अनइंस्टॉल हो जाएगा और अब आप नए संस्करण को बिना किसी समस्या के इंस्टॉल करने का प्रयास कर सकते हैं। आशा है कि यह आपकी मदद करेगा

नीचे दिए गए लिंक से मेरे समाधान की जाँच करें।

लिंक १

आशा है इससे आपकी मदद होगी।


वे इस तरह से कैसे कर सकते थे। काम कर रहे btw धन्यवाद।
एडम वराहिजी

2
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक हिस्सों को यहां शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं।
SOFe

मैन आपको बहुत धन्यवाद, इस बग ने मुझे यह पता लगाने के लिए एक सप्ताह का समय लिया
डिएगो विनीकस

खुशी है, आपकी मदद की !! @ डिएगोविनियस
Ragu स्वामीनाथन

66

वर्तमान Updated Android Studio 2.3उपयोगकर्ताओं के लिए यह उत्तर आपके लिए है क्योंकि शायद ही लोग आजकल एंड्रॉइड के विकास के लिए ग्रहण का उपयोग करते हैं क्योंकि एंड्रॉइड स्टूडियो में बड़ी प्रगति है।

तो, अपनी Signed apkफ़ाइल बनाने के लिए इस तरह का पालन करें ।

  1. Build> उत्पन्न करें Signed apk
  2. बनाएँ Keystore path
  3. डाल दिया Password, alias, key password
  4. Build typeतदनुसार (उदाहरण के लिए playstore उपयोग में जारी करने के लिए release) का चयन करें ।
  5. Signature Versionदोनों का चयन करें V1और V2चेकबॉक्स।
  6. Finsih
  7. उस जगह से जाएं explorerजहां आपने स्टोर करने के लिए एपीके के लिए चयन किया था और आपको इसका उपयोग करते हुए अपना .apkफ़ाइल नाम दिखाई देगा app-release.apk

14
सिग्नेचर V1 का चयन करते हुए
मीनमैन

आपने मेरा बहुत समय बचा लिया
जिज्ञासु

मेरे लिए काम। समय बचाओ । धन्यवाद
YeeKhin

5
दोनों की जाँच V1और V2समाधान था!
एलेक्स जोलीग

1
V1 की जाँच करने से मेरे लिए समस्या हल हो गई। पहले, केवल V2 की जाँच की गई थी।
ब्लू जे आईटी

51

सिग्नेचर वर्जन v1 और v2 दोनों का चयन करने से मेरे लिए समस्या हल हो गई .... कोशिश करेंयहां छवि विवरण दर्ज करें


4
यह मेरा मुद्दा था। सवाल यह है कि हमें V1 (जार हस्ताक्षर) क्यों चिह्नित करना चाहिए? और कैसे google हमसे यह जानने की उम्मीद करता है?
ए। आलकादोमी 6

यह अनिवार्य नहीं है। यदि संभव हो तो आपको उन चेकबॉक्सों में से प्रत्येक को चेक करना चाहिए, लेकिन यदि नया वी 2 हस्ताक्षर तंत्र आपको समस्याएं देता है, तो आप समस्याओं का सामना करने पर दोनों की जांच कर सकते हैं।
शुभमक्ख

43

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

यहां छवि विवरण दर्ज करें

तब तक सब कुछ ठीक था अगर मैंने "किसी भी तरीके से INSTALL" को चुना, लेकिन क्या हुआ अगर मैंने ऐप को अनइंस्टॉल कर दिया और इसे (एक संभावित परिदृश्य) फिर से स्थापित करना चाहा, तो निम्नलिखित हुआ:

यहां छवि विवरण दर्ज करें

इसलिए मैंने प्ले प्रोटेक्ट को डिसेबल करके समस्या को हल किया, जो मैंने (Google Play के भीतर)> मेनू> प्ले प्रोटेक्ट> सुरक्षा खतरों के लिए खोज (अक्षम) किया।

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


यह समाधान मेरे लिए काम करता है। Google +1 द्वारा एक और बदलाव
रेडी एंड्रॉइड

तुमने मेरी जान बचाई!
akcoban

क्या आप हमें बता सकते हैं कि ऐसा क्यों होता है? मैं क्या गलत कर रहा हूं जो इसे ठीक करने का कारण बनता है?
स्पार्कहेड 95

16

"एप्लिकेशन इंस्टॉल नहीं है" दिखाता है जब एक ही पैकेज वाला ऐप पहले से ही एक ही डिवाइस में स्थापित है। बस अपने पहले आवेदन को हटा दें जिसे आप हस्ताक्षर किए गए एपीके में बनाने से पहले परीक्षण उद्देश्य के लिए उपयोग कर रहे थे। यह काम करेगा। चियर्स!


8
हाँ, मुझे पता है लेकिन यह पहले से स्थापित नहीं है।
एडम वराहिजी

6
वर्तमान एप्लिकेशन को हटाए बिना मैं उच्च संस्करण के साथ APK कैसे स्थापित कर सकता हूं?
user7856586

12

चयन करें दोनों हस्ताक्षर संस्करण v1 और v2 समस्या को हल करेंगे

यहां छवि विवरण दर्ज करें

v1 योजना

JAR फ़ाइल को कमांड लाइन jarsigner टूल का उपयोग करके या सीधे java.security API के माध्यम से साइन इन किया जा सकता है। META-INF निर्देशिका में गैर-हस्ताक्षर से संबंधित फ़ाइलों सहित हर फ़ाइल प्रविष्टि, JARignigner उपकरण द्वारा JAR फ़ाइल पर हस्ताक्षर किए जाने पर हस्ताक्षरित होगी। हस्ताक्षरित JAR फ़ाइल में हस्ताक्षरित प्रत्येक फ़ाइल प्रविष्टि के लिए, एक व्यक्तिगत प्रकट प्रविष्टि इसके लिए बनाई जाती है जब तक कि यह पहले से ही प्रकट उपस्थिति में मौजूद नहीं है

V2 योजना

v1 हस्ताक्षर एपीके के कुछ हिस्सों की रक्षा नहीं करते हैं, जैसे ज़िप मेटाडेटा। एपीके वेरीफायर को बहुत सारे अविश्वसनीय (अभी तक सत्यापित नहीं) डेटा संरचनाओं को संसाधित करने की आवश्यकता है और फिर हस्ताक्षर द्वारा कवर नहीं किए गए डेटा को छोड़ दें। यह एक बड़ी हमले की सतह प्रदान करता है। इसके अलावा, एपीके वेरीफायर को सभी संपीड़ित प्रविष्टियों को अनफॉलो करना होगा, अधिक समय और मेमोरी का उपभोग करना होगा। इन मुद्दों को हल करने के लिए, एंड्रॉइड 7.0 ने एपीके सिग्नेचर स्कीम v2 पेश की

डिफ़ॉल्ट रूप से, एंड्रॉइड स्टूडियो 2.2 और ग्रैडल 2.2 के लिए एंड्रॉइड प्लगिन एपीके सिग्नेचर स्कीम v2 और पारंपरिक हस्ताक्षर योजना दोनों का उपयोग करके अपने ऐप पर हस्ताक्षर करते हैं, जो JAR हस्ताक्षर का उपयोग करता है।

एपीके सिग्नेचर स्कीम v2 का उपयोग करने की सिफारिश की गई है लेकिन यह अनिवार्य नहीं है। कृपया विवरण देखें


10

एंड्रॉइड स्टूडियो 3.0 और इसके बाद के संस्करण में

जैसा यहाँ बताया गया है

नोट: रन बटन testOnly = "true" के साथ एक एपीके बनाता है, जिसका अर्थ है कि एपीके को केवल अदब (जिसे एंड्रॉइड स्टूडियो उपयोग करता है) के माध्यम से इंस्टॉल किया जा सकता है। यदि आप एक डिबग करने योग्य एपीके चाहते हैं, जिसे लोग adb के बिना इंस्टॉल कर सकते हैं, तो अपना डिबग वेरिएंट चुनें और बिल्ड बंडल (एस) / एपीके (एस)> बिल्ड एपीके (एस) पर क्लिक करें।

AndroidManifest.xml में एप्लिकेशन टैग केandroid:testOnly="false" अंदर जोड़ें

संदर्भ: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-on.net.html


7

ऊपर शुभम सोनी जवाब मेरे लिए काम करता है, वास्तव में यह एंड्रॉइड वर्जन> = 5.0. होता है। ऊपर आप अपनी एपीके को बनाते समय बस इसका उपयोग करने में सक्षम होते हैं यहां छवि विवरण दर्ज करें...


1
यह डुप्लिकेट उत्तर क्यों?
sziraqui

@sziraqui: सुभंकर सोनी ने उल्लेख नहीं किया है कि "डिवाइस पर मैन्युअल रूप से साइन इन नहीं किया जा सकता है," त्रुटि स्थापित नहीं हुई "। मेरे उत्तर में कुछ भी गलत है? .For Android संस्करण <= 5.0 पर आप दोनों हस्ताक्षर चेकबॉक्स को चिह्नित किए बिना एक ही apk इंस्टॉल कर पाएंगे।
अमित राज

आपका उत्तर मूल उत्तर में केवल एक और बिंदु जोड़ रहा है, इसलिए यह एक टिप्पणी होनी चाहिए। यदि आप इसे उत्तर के रूप में पोस्ट कर रहे हैं, तो आपको एंड्रॉइड 5.0 के अपने दावे का समर्थन करते हुए कुछ प्रकार के उद्धरण जोड़ना चाहिए। क्या होगा यदि आपकी समस्या वास्तव में android ide से संबंधित है न कि android संस्करण से?
sziraqui

धन्यवाद, उत्तर में चित्र ने मुझे V1 और V2 दोनों सक्षम करने की कोशिश करने का विचार दिया। पहले मैं केवल V1 के साथ जा रहा था
jasxir

6

यहाँ मैंने इस मुद्दे को हल किया

इस समस्या के पीछे का कारण फोन में एक ही पैकेज नाम के साथ पहले से ही एक एप्लिकेशन है, लेकिन आप इसे फोन मेनू में नहीं पा सकते हैं (यू पहले ही अन-इंस्टॉलेशन बना चुका है लेकिन वास्तव में यह अभी भी आपके फोन में है)।

एप्लिकेशन को देखने के लिए फोन पर जाएं SETTINGS -> APPS । वहां आप एप्लिकेशन देख सकते हैं, लेकिन इसके अंदर UNINSTALL बटन अक्षम हो सकता है। सभी उपयोगकर्ताओं के लिए स्थापना रद्द देखने के लिए मेनू अतिप्रवाह बटन पर क्लिक करें

सभी उपयोगकर्ताओं के लिए अनइंस्टॉल किए जाने के बाद मैंने सफलतापूर्वक अपना हस्ताक्षरित APK स्थापित किया है। आप फोन से ऐप को अनइंस्टॉल करने के लिए भी अदब का इस्तेमाल कर सकते हैं।

adb uninstall package name

इसके अलावा, यदि आपका मोबाइल कई उपयोगकर्ताओं का समर्थन करता है, तो जांचें कि क्या संबंधित ऐप अन्य उपयोगकर्ताओं के लिए इंस्टॉल नहीं है। अगर यह दूसरों के लिए इंस्टॉल किया गया है तो पहले पिछले ऐप को अनइंस्टॉल करें और फिर से कोशिश करें


4

यह काफी पुराना प्रश्न है, लेकिन मेरा समाधान बिल्ड.ग्रेड में वर्जनकोड (वृद्धि) को बदलना था



4

minifyEnabled false

सभी मंच पर अनुसंधान के 3 दिनों के बाद ही मेरे लिए काम किया है!


1
यह इस मौजूदा जवाब का सिर्फ एक दोहराव प्रतीत होता है ।
पैंग

जोड़ा टीका के साथ।
रॉबिनटेकस

दूसरे शब्दों में, यह उस उत्तर पर एक टिप्पणी के रूप में पोस्ट किया जाना चाहिए था , न कि स्वयं में और उत्तर के रूप में।
रॉबिनटेकस

3

ऐसा इसलिए हो सकता है क्योंकि आप बाहरी एसडी कार्ड स्टोरेज से एपीके फाइल चलाते हैं। बस एपीके फ़ाइल को आंतरिक संग्रहण समस्या में कॉपी करें


1

यह आपकी हस्ताक्षर संस्करण की पसंद के कारण हो सकता है। कुछ फोन पर, इंस्टॉलेशन त्रुटियां होती हैं यदि हस्ताक्षर संस्करण V2 के रूप में चुना गया था। इसलिए यदि ऐसा होता है, तो V1 का चयन करने का प्रयास करें, यह निश्चित रूप से काम करेगा।


1

मुझे आज उसी मुद्दे का सामना करना पड़ा, मुझे याद आया कि मैंने अपना एपीके "नया" Google Play साइनिंग के साथ साइन किया है:


यहां छवि विवरण दर्ज करें


सुनिश्चित करें कि आपने Google Play साइनिंग के साथ अपने आवेदन पर हस्ताक्षर किए हैं।

अगर तुमने किया:

  • Google कंसोल में अपना एपीके अपलोड करके एक अपडेट स्थापित करें (जैसे आप आमतौर पर अपने एप्लिकेशन को अपडेट करते समय):

यहां छवि विवरण दर्ज करें


  • इसे सफलतापूर्वक अपलोड करने के बाद, खोलें Artifact library मेनू में खोलें।
  • आपको वह एपीके दिखाई देगा जो आपने अभी अपलोड किया है।
  • डाउनलोड बटन दबाएं और चुनें Download derived APK

अब आप एपीके इंस्टॉल कर पाएंगे।


0

यदि आपका Android स्टूडियो संस्करण 3.0 से अधिक है

ऐसा लगता है कि बिल्ड से डिवाइस पर चलने के बाद हम सीधे एपीके का उपयोग नहीं कर सकते -> आउटपुट-> एपीके फोल्डर।

एंड्रॉइड स्टूडियो 3.0 में अपग्रेड करने के बाद आपको बिल्ड -> बिल्ड एपक (ओं) पर जाना होगा, फिर बिल्ड से एपीके कॉपी करें -> आउटपुट -> एपीके -> डीबग

यहां छवि विवरण दर्ज करें


इस सवाल का शीर्षक - "Cannot install signed apk"। आप डिबग एपीके की बात कर रहे हैं।
केआरके

0

फ़ाइल> प्रोजेक्ट संरचना> बिल्ड वेरिएंट> रिलीज का चयन करें> सुनिश्चित करें कि 'साइनिंग कॉन्‍फ़िगरिंग' खाली नहीं है> अगर यह ड्रॉप विंडो से चयन होता है $signingConfigs.release

मैंने एंड्रॉइड स्टूडियो 3.1.4 के साथ ऐसा किया था और इसने मुझे रिलीज़ एपीके बनाने और रिलीज़ करने की कुंजी के ऊपर दिए गए सभी चरणों का पालन करने के बाद एक एपीके बनाने की अनुमति दी थी और ऐप अपग्रेड में जानकारी जोड़ दी थी। चीयर्स!


$signingConfigs.releaseउपलब्ध नहीं है, केवल $signingConfigs.debugउपलब्ध है।
केआरके

इसके बाद बिल्ड> जेनेरेट एपीके> एपीके का चयन करें और निर्देशों का पालन करें।
ट्रेवेल्ली

0

मैं अपने Android आवेदन में एक ही मुद्दे का सामना कर रहा था। मैंने बस कुछ लाइब्रेरी को अपडेट किया और फिर साइन एपीके बनाएं। अब इसका काम है।


0

यदि Google Play द्वारा ऐप साइनिंग आपके ऐप के लिए सक्षम है, तो आपको Google Play संस्करण की स्थापना रद्द करने की आवश्यकता नहीं है : चरणों का पालन करें:
1. अपनी रिलीज़ कुंजी के साथ अपने ऐप का एक हस्ताक्षरित संस्करण बनाएं
2. Google Play डेवलपर कंसोल
3 पर जाएं। अपने ऐप के नए हस्ताक्षरित संस्करण के साथ एक बंद ट्रैक रिलीज़ (अल्फा या बीटा रिलीज़) बनाएं
। अब आप Google Play द्वारा ऐप साइनिंग द्वारा साइन किए गए एपीके को डाउनलोड कर सकते हैं , व्युत्पन्न APK चुनेंयहां छवि विवरण दर्ज करें

  1. डाउनलोड किए गए APK को स्थापित करें

कारण है Google Play द्वारा ऐप साइनिंग अलग-अलग कुंजियों के साथ रिलीज़ ऐप लॉन्च करता है, अगर आपके पास Play Store से ऐप इंस्टॉल है, और आप अपने फ़ोन में नए रिलीज़ संस्करण ऐप (एंड्रॉइड स्टूडियो से उत्पन्न) का परीक्षण करना चाहते हैं, तो "ऐप इंस्टॉल नहीं" चूंकि पुराने संस्करण और नए संस्करण को दो अलग-अलग कुंजी द्वारा हस्ताक्षरित किया गया था: एक Google Play द्वारा ऐप साइनिंग के साथ और एक आपकी कुंजी के साथ।



0

कृपया डिवाइस में डिबग एप्लिकेशन को अनइंस्टॉल करें या इस समस्या को दूर करने के लिए संस्करण कोड बढ़ाएं


0

मेरे मामले में मैं एक हस्ताक्षरित एपीके को इंस्टॉल करने का परीक्षण करने की कोशिश कर रहा था और मेरे डिवाइस पर वर्तमान इंस्टॉल किया गया संस्करण अहस्ताक्षरित था (सीधे एंड्रॉइड स्टूडियो के लिए डिबग संस्करण का निर्माण)


0

यह स्पष्ट है, लेकिन फिर भी मेरे लिए यह पता लगाना कठिन था,

कृपया जांचें कि क्या आपके मोबाइल डिवाइस में एपीके को स्थापित करने के लिए पर्याप्त जगह है। और यह भरा नहीं है।

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