2011-09-03 16 views
59

में एपीआई कुंजी त्रुटियों पर हस्ताक्षर किए जब मैंने अपनी डीबग मैप कुंजी से मेरे हस्ताक्षरित मानचित्र कुंजी पर स्विच किया, तो मेरे मानचित्र काम करना बंद कर देते हैं। मैं logcat में निम्न त्रुटियों को मिलता है:Google मानचित्र ने एंड्रॉइड

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26 
09-03 18:18:04.112: WARN/System.err(4073): java.io.IOException: Server returned: 3 
09-03 18:18:04.112: WARN/System.err(4073):  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 
09-03 18:18:04.112: WARN/System.err(4073):  at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 
09-03 18:18:04.112: WARN/System.err(4073):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 
09-03 18:18:04.112: WARN/System.err(4073):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 
09-03 18:18:04.112: WARN/System.err(4073):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 
09-03 18:18:04.112: WARN/System.err(4073):  at java.lang.Thread.run(Thread.java:1019) 

मैं डबल जाँच लिया है सब कुछ, अनुमति और पुस्तकालय स्थान पर हैं। मैंने गायन की कुंजी और कोई भाग्य नहीं बनाया है।

कोई भी विचार?

+0

कोड पोस्ट करें जहां अपवाद फेंक दिया गया है। –

+0

मुझे एक ही समस्या थी, यह एक बार काम करता था, फिर हर बार दौड़ता था, लेकिन केवल एक ग्रे ग्रिड लोड करता था और आपके द्वारा पोस्ट की गई त्रुटियों के साथ आया था। –

+4

आप जानते हैं कि आपको अपने लिए काम करने वाले उत्तर को स्वीकार करना चाहिए :) –

उत्तर

79

मुझे एक ही समस्या थी और मुझे लगा कि इंटरनेट पर कोई उपयोगी उत्तर नहीं था, इसलिए उम्मीद है कि इससे भविष्य में सभी को मदद करनी चाहिए।

GoogleMaps for Android का उपयोग करते समय, आपको दो कुंजी - डीबग और रिलीज़ की आवश्यकता होती है।

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

जब आप बाजार में ऐप लॉन्च करने के लिए तैयार हों, तो को AndroidManifest.xml पर सेट करें और साइन एपीआई कुंजी का उपयोग करें।

हस्ताक्षरित API कुंजी का उपयोग करते समय, MapView केवल तब दिखाई देगा जब ऐप Android Market से स्थापित किया गया हो। इसलिए, Eclipse (रन के रूप में, डीबग एएस, आदि) से ऐप इंस्टॉल करना या कमांड लाइन (adb install)MapView नहीं दिखाएगी।एक बार ऐप बाजार में आने के बाद आश्वस्त रहें - आप इसे डाउनलोड करते हैं और MapView दिखाई देंगे।

पर हस्ताक्षर किए API कुंजी के साथ

, यदि आप Eclise से एप्लिकेशन को तैनात, आप मिल जाएगा एक "सर्वर 3 लौटे, IOProcessing अपवाद 26" एक चेतावनी के रूप - बस इसे अनदेखा।

नोट: यह भी सुनिश्चित करें कि एक ही MapView के कोई डुप्लिकेट उदाहरण नहीं हैं। यदि आपके ऐप को "एक्स" संख्या की आवश्यकता है। MapView एस, "x" संख्या उत्पन्न करें। नई हस्ताक्षरित कुंजी (प्रत्येक MapView के लिए एक) के बाद से GoogleMaps के पास एक MapView उदाहरण के लिए क्वेरी सीमा है।

दोनों कुंजी हो रही के लिए, Obtaining API keys for GoogleMaps on Android के लिए चरणों का पालन करें।

हैप्पी कोडिंग!

अद्यतन:

API कुंजियां प्राप्त करने के लिए ऊपर दिए गए लिंक अब एक पदावनत प्रक्रिया है। Obtaining API keys for GoogleMaps Android API v2 आगे बढ़ने का संदर्भ लें।

+0

मुझे नहीं पता कि आप प्रति ऐप 1 जीपीएस एपीआई कुंजी कैसे बना सकते हैं। AFAIK, जीमैप्स एपीआई कुंजी .keystore से जुड़ा हुआ है (जिसे आप अपने ऐप पर हस्ताक्षर करने के लिए उपयोग करते हैं)। इसका मतलब है प्रत्येक ऐप के लिए, आप केवल 1 जीमैप्स एपीआई कुंजी बना सकते हैं। – anticafe

+0

हम्म .. आपके पास एक वैध बिंदु है। शायद आप कई हस्ताक्षरित कुंजी उत्पन्न करते हैं? हालांकि मुझे यकीन नहीं है कि हस्ताक्षर अद्वितीय होंगे या नहीं। –

+1

+1 महान उत्तर है। –

1

मुझे बस एक ही समस्या का सामना करना पड़ा।

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

प्लेटफार्म एंड्रॉइड 3.2 है, डिवाइस असस ट्रांसफार्मर है, कनेक्शन वाईफाई है।

FYI मेरा एंड्रॉइड 2.2 एप्लिकेशन ठीक काम करता है, 3 डी से अधिक Droid पर मानचित्र को पुनर्प्राप्त करता है।

यहाँ मेरी समस्या का समाधान, आशा है कि यह जेन में मदद करता है:

मेरे मामले में, मैं ट्रांसफार्मर यूएसबी-टेदर साथ ट्रांसफार्मर पर रिलीज़ संस्करण ग्रहण आइकन "के रूप में डीबग" का उपयोग, इंस्टॉल करते हैं, नक्शा ऊपर वर्णित के रूप में विफल रहा है (एफवाईआई यह एक प्रक्रिया है जिसे मैंने एंड्रॉइड 2.2 और अन्य उपकरणों के साथ सफलतापूर्वक कई बार उपयोग किया है)।

तो मैंने इसके बजाए इसकी कोशिश की: मैं एलीके रिलीज एपीके बनाने के लिए एक्लिप्स फ़ाइल | निर्यात ... विकल्प का उपयोग करता हूं, और उसके बाद उस एएसके को अपने एसस सिंक एप्लिकेशन का उपयोग करके ट्रांसफॉर्मर पर इंस्टॉल करता हूं। सब कुछ ठीक है। नक्शा टाइल्स दिखाई देते हैं।

+0

आप सही हैं कि यह एक कोड मुद्दा नहीं है। मैंने अलग-अलग ऐप्स में विभिन्न जीमेल खातों के तहत कुंजी बनाने और अभी भी वही त्रुटि बनाने की कोशिश की है। मैंने सोचा कि शायद यह मेरा डिवाइस था, एक एचटीसी जी 2 एनोइड 2.3 चला रहा था, फिर मैंने विभिन्न एंड्रॉइड एपिस के साथ एमुलेटर का उपयोग करने की कोशिश की और वहां कोई भाग्य नहीं था। मैंने आपके सुझाव की कोशिश की और एस्ट्रोफाइल का उपयोग करके अपने डिवाइस पर एपीके स्थापित किया और समस्या अभी भी वहां है। धन्यवाद हालांकि, यह सुनकर अच्छा लगा कि मैं इस त्रुटि को प्राप्त करने वाला अकेला नहीं हूं। एकमात्र अन्य चीज जिसे मैं सोच सकता हूं, मेरी परियोजना को दूसरे कंप्यूटर पर ले जा रहा है और फिर कोशिश कर रहा है। – Jen

+0

क्या आपने एमडी 5 फिंगरप्रिंट को फिर से बनाया था? मेरे मामले में एमडी 5 बदल गया, इसलिए मुझे एक नई मैप्स एपीआई कुंजी मिलनी पड़ी। –

+0

हां मैंने एमडी 5 फिंगरप्रिंट को फिर से बनाया और अभी भी वही त्रुटि। – Jen

2

रिलीज ऐप के लिए साइन की गई मानचित्र कुंजी का उपयोग किया जाता है। तो आपको ऐसी जानकारी मिल जाएगी। यदि आप हस्ताक्षरित मानचित्र कुंजी के साथ यूएसबी-टेदरहेड के माध्यम से ऐप डीबग करते हैं। अगर आप ऐप डीबग करना चाहते हैं तो डीबग मैप कुंजी पर वापस स्विच करें, और अपडेट या नया संस्करण जारी करने से पहले इसे हस्ताक्षरित मानचित्र कुंजी से प्रतिस्थापित करें।

+0

हां, हस्ताक्षरित एपीआई कुंजी रिलीज के लिए है। इस कुंजी के साथ, नक्शादृश्य केवल तब दिखाई देगा जब आप बाजार से इंस्टॉल करेंगे। –

3

अंत में यह निश्चित है।

मैं Windows मशीन का उपयोग कर रहा है, तो मैं बस C:\Users\rohit\.android के पास गया और debug.keystore और default.keyset1 इस बार नष्ट कर दिया जाता है, मैं ग्रहण के पास गया और मेरी परियोजना और इसके किया के लिए एक साफ निर्माण लागू किया!

+1

ऐसा नहीं है कि यह कैसे किया जाता है। यह एक हैक है और जरूरत नहीं है। –

2

मुझे एक ही समस्या थी। मेरे मामले में, मैं क्या गलत कर रहा था यह था। मैं इस तरह Keytool आदेश लिख रहा था:

keytool -list -keystore debug.keystore ... 

के बजाय:

keytool -list -keystore ~\.android\debug.keystore ... 

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

मुझे उम्मीद है कि यह किसी की मदद करेगा :)

0

मेरे पास एक ही सवाल है लेकिन मुझे लगता है कि मुझे जवाब मिला!

  1. तय https://developers.google.com/android/maps-api-signup इन चरणों का पालन करें और अपने प्रमाण पत्र के MD5 फ़िंगरप्रिंट
  2. विकास करते हैं, अगर नक्शा दिखाया नहीं कर रहा है, इस बारे में चिंतित नहीं है और प्राप्त करें! सरल निकालने APK इस APK फ़ाइल का उपयोग अपने फोन पर स्थापित करने के लिए जो पहले चरण में इस्तेमाल किया और है कुंजी उपकरण के साथ एंड्रॉयड उपकरणों का उपयोग, आप MapView देखेंगे

वैसे भी, जबकि विकास समय, हो सकता है आप MapView नहीं दिख रहा है, लेकिन यह समस्या तक नहीं है और इसके बारे में चिंतित नहीं है! सरल ऐप & आपके कीस्टोर के साथ निर्मित करें और आपको नक्शा डिस्प्ले सही ढंग से दिखाई देगा

1

यदि आप डीबग कुंजी का उपयोग कर रहे हैं जो किसी और ने आपको उत्पन्न किया है और प्रदान किया है, तो यह निम्नलिखित अपवाद के साथ खाली मानचित्र का कारण है ।

java.io.IOException: Server returned: 3 

आप एक API कुंजी प्राप्त करने के लिए इस लिंक का उपयोग कर सकते हैं: Register

+1

यह केवल v1 –

1

एक और बात: जोड़ने आप याद रखना चाहिए -v कि गूगल एपीआई सिर्फ MD5 जरूरत SHA1.So नहीं की जाँच करें क्या कोड के बाद आप गूगल को देते हैं।

+1

के लिए है तो फिर क्यों गूगल कहता है: Google सत्यापित है कि प्रत्येक अनुरोध का जन्म एंड्रॉइड एप्लिकेशन से जो नीचे सूचीबद्ध एसएचए 1 फिंगरप्रिंट और पैकेज नामों में से एक से मेल खाता है। आप निम्न आदेश का उपयोग कर अपने डेवलपर प्रमाणपत्र के SHA1 फिंगरप्रिंट को खोज सकते हैं –

0

गरीब आत्माओं के लिए जिन्होंने एसडीके एक्स्ट्रा से मानचित्र उदाहरण बनाने की कोशिश की: जैसे ही मैंने com.example.mapdemo से com.mynmae.mapdemo तक पैकेज का नाम बदल दिया, मानचित्र जादुई रूप से दिखाई दिया। हां, मैंने खोज और कोशिश करने में एक घंटा खो दिया और चुपचाप पैकेज नाम को खारिज कर दिया।

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