2013-12-08 12 views
47

से कुंजी पढ़ने में विफल मैं इंटेलिज और ग्रेडल के तहत एंड्रॉइड ऐप विकसित कर रहा हूं। और नीचे दिए तरीक़े का उपयोग कर कुंजीस्टोर फ़ाइल उत्पन्न करने के लिए:एपीके हस्ताक्षर त्रुटि: कीस्टोर

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 

तो build.gradle में कुंजीस्टोर फ़ाइल का उपयोग किया:

signingConfigs { 
    robert { 
     storePassword 'robert' 
     storeFile file('/Users/bournewang/Documents/Project/android.keystore') 
     keyPassword 'robert' 
     keyAlias 'mike' 
    } 
} 

जब अंत में हस्ताक्षर किए apk फ़ाइल उत्पन्न करने के लिए कोशिश कर रहा है: ./gradlew assembleRelease

यह त्रुटि देता है:

निष्पादन कार्य के लिए विफल रहा ': Myexample: packageRelease'।

Failed to read key from keystore

+1

जोड़ना - info और --stacktrace gradlew कमांड लाइन में आपको अधिक जानकारी देनी चाहिए जो समस्या को इंगित करने में मदद कर सकती है। –

+2

मुझे इसका सामना करना पड़ रहा था क्योंकि मैंने जो "मुख्य उपनाम" टाइप किया था वह कीस्टोर में मौजूद नहीं था। [यह जवाब] (http://stackoverflow.com/a/28119723/1276636) ने मेरी मदद की। – Sufian

उत्तर

56

अपनी कुंजीस्टोर फ़ाइल को पहले जांचें, उदाहरण में आप फ़ाइल को my-release-key.keystore नाम से बनाते हैं। अगर इसका सही है और वास्तव में फ़ोल्डर में मौजूद Users/bournewang/Documents/Project जांच उर्फ, अपने उदाहरण में यह है -alias Alias_Name, लेकिन config में आप उर्फ ​​निर्दिष्ट माइक

41

आदेश में क्या गलत है आप Gradle के signingReport आदेश का उपयोग कर सकते हैं पता लगाने के लिए।

मैक पर:

./gradlew signingReport 

विंडोज पर:

gradlew signingReport 
+0

+1 उस संकेत के लिए धन्यवाद! इस तरह से मुझे पता चला कि साइनिंग चलाने पर रिपोर्ट ने मेरी रिलीज हस्ताक्षर कॉन्फ़िगरेशन की सूची बनाई, लेकिन केवल स्टोर स्थान, संस्करण, कॉन्फ़िगरेशन और उपनाम। यह शा 1, एमडी 5 और वैध तक गायब था। कारण था: मेरा उपनाम गलत था:) - यदि उपरोक्त आदेश जानकारी के पूरे सेट को सूचीबद्ध करता है, तो आपको सभी सेट (संस्करण, कॉन्फ़िगरेशन, स्टोर, उपनाम, md5, sha1, मान्य होना चाहिए), यदि नहीं, तो सुनिश्चित करें कि आप है पासवर्ड, कीस्ट्रोक और उर्फ ​​अपने प्रोजेक्ट की build.gradle फ़ाइल – AgentKnopf

+0

में सही तरीके से सेट इस रनिंग यह है कि दिखा रहा है: 'संस्करण: जारी कॉन्फ़िग: none' मेरी .keystore नष्ट कर दिया है? –

+0

धन्यवाद एक गुच्छा! gradlew सीधे एंड्रॉइड स्टूडियो परियोजना निर्देशिका में स्थित है। हस्ताक्षर कॉलिंग रिपोर्ट से पता चलता है कि डीबग-कुंजी का उपनाम वास्तव में "AndroidDebugKey" है ... – hotzen

9

सबसे अधिक संभावना है कि अपने प्रमुख उर्फ ​​अपना कुंजी फ़ाइल के लिए मौजूद नहीं है।

यह answer अपने हस्ताक्षर करने के मुद्दे को ठीक करना चाहिए;)

+0

यह सही उत्तर है, उपनाम गलत है: डी – TheBronx

0

यह पैरामीटर में से किसी एक ही नहीं, फ़ाइल नाम या उपनाम हो सकता है - मेरे लिए यह कुंजी पासवर्ड था।

1

निकाला जा रहा है double-quotes मेरी समस्या हल, अब इसकी:

DEBUG_STORE_PASSWORD=androiddebug 
DEBUG_KEY_ALIAS=androiddebug 
DEBUG_KEY_PASSWORD=androiddebug 
1

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

+0

स्टैक ओवरफ्लो में आपका स्वागत है। यह प्रश्न का उत्तर नहीं देता है। एक बार आपके पास पर्याप्त प्रतिष्ठा हो जाने के बाद आप किसी भी पोस्ट पर टिप्पणी कर सकेंगे; इसके बजाय, उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है। –

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