2012-12-05 17 views
24

मैं जाँच की है और डबल मेरी APIkey कि मैं गूगल पर पंजीकृत हालांकि मैं अभी भी निम्न त्रुटि हो रही है जांच की गई:Google मानचित्र API V2 'मानचित्र लोड करने में विफल। संपर्क नहीं हो सका Google सर्वर '

12-05 16:31:12.940: E/Google Maps Android API(12334): Failed to load map. Could not contact Google servers. 

क्या मैं देख रहा हूँ/बाहर बटन में ज़ूम है और MapView के लिए पृष्ठभूमि लेकिन कोई नक्शा ??? !!!

कोई विचार ???

उत्तर

मैं इसे यहाँ पोस्ट करेंगे, क्योंकि जो हल मेरी समस्या नीचे स्वीकार किए जाते हैं जवाब की टिप्पणियों में कहा गया था।

यह READ_GSERVICES अनुमति थी। कुछ कारणों से डेवलपर साइट पर अनुमति का उल्लेख नहीं किया गया था जब यह उनका उपयोग करने के लिए आया था।

उत्तर

48

Android पर Google मानचित्र API v2 सेट अप करने के लिए, सुनिश्चित करें कि आपने को निम्नलिखित चरणों में पूरा कर लिया है।

एपीआई पहुँच के लिए अनुप्रयोग कुंजी

अपने अनुप्रयोग प्रमाण पत्र की SHA1 अंगुली की छाप के लिए गूगल पूछता है, आप सबसे अधिक संभावना आपके debuging प्रमाण पत्र के लिए दो बार इस चलाने के लिए, एक बार चाहते हैं चाहते हैं, और एक बार अपने प्रकाशन प्रमाण पत्र के लिए ।

keytool -list -v -keystore publishcert.keystore
keytool -list -v -keystore ~/.android/debug.keystore

बाजार पर app की अंगुली की छाप तो एक एप्लिकेशन के फिंगरप्रिंट है कि आप बस का परीक्षण कर रहे अलग है!

Google API कंसोल

Google API Console को लॉग इन पर सेवा सक्षम करें।
सेवा पृष्ठ पर, Google Maps Android API v2 खोजें।

नोट - Google Maps API v2 क्लिक Create new Android Key

API तक पहुंच के लिए अपने प्रमाण पत्र हस्ताक्षर जोड़ें विभिन्न तो Google Maps Android API v2

एपीआई पहुँच टैब में है।

yourrelease-fingerprint;com.example.project.package
yourdebug-fingerprint;com.example.project.package

आपको जेनरेट एपीआई एक्सेस कुंजी प्रदान किया जाएगा।

आप पहली बार API कंसोल

अनुप्रयोग प्रकट

संशोधन <application> तत्व के अंदर अपने एपीआई कुंजी जोड़ें में एक API परियोजना बनाने के लिए आवश्यकता हो सकती है।

<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="yourapikey"/> 

निम्न अनुमतियों जोड़ें:

<permission 
     android:name="com.example.project.package.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 

<uses-permission android:name="com.example.project.package.permission.MAPS_RECEIVE"/> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

निम्नलिखित सुविधा का अनुरोध करें:

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 
+1

निश्चित रूप से मेरे डीबगिंग कुंजी के साथ हस्ताक्षर किए गए उपयोगकर्ता/.android/debug.keystore – StuStirling

+0

क्या आपने अपने Google API कंसोल में मानचित्र API का उपयोग सक्षम किया है? –

+0

सेवा बिट पर हाँ, मैंने इसे चालू कर दिया है और नियम और शर्तों को स्वीकार कर लिया है। – StuStirling

7

यह प्रकट साथ एक मुद्दा हो सकता है। मेरे लिए निम्नलिखित काम करता है, विशेष रूप से permission.MAPS_RECEIVE ने वही समस्या मैं था हल: ज़ूम बटन और MyLocation दिखाया गया है, लेकिन नक्शे कोई टाइल ...

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.discos2.example" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <permission 
     android:name="com.discos2.example.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.discos2.example.permission.MAPS_RECEIVE" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

    <uses-feature 
     android:name="android.hardware.location" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.location.network" 
     android:required="false" /> 
    <uses-feature android:name="android.hardware.location.gps" /> 
    <uses-feature 
     android:name="android.hardware.wifi" 
     android:required="false" /> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <application 
     android:hardwareAccelerated="true"> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="__NEW_GOOGLE_MAPS_V2_KEY_GOES_HERE__" /> 

     <activity 
      android:name=".ui.activities.MainActivity" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 
+1

अनुमति पोस्ट करने के लिए धन्यवाद मैं याद कर रहा था READ_GSERVICES – StuStirling

+0

धन्यवाद एक महान स्पष्टीकरण! –

1

मैं एक ही मुद्दे का सामना करना पड़ रहा था; लेकिन मेरे लिए यह कुंजीस्टोर मुद्दा था, मैं इसे डीबग कीस्टोर के साथ साइन कर रहा था इसलिए Google मानचित्र एपीआई v2 Google मानचित्र से कनेक्ट करने में सक्षम नहीं था।

मैंने my-release-keystore.keystore का उपयोग करके एक नई एपीआई कुंजी बनाई है (आप इसे C:\Users\{YOUR_USER_NAME}\.android\my-release-key.keystor ई पर पा सकते हैं) जेडीके में उपलब्ध कीटोल का उपयोग करके SHA1 उत्पन्न करें; इसे कॉपी करें और Google कंसोल के साथ पंजीकरण करें।

अपने अनुप्रयोगों मेनिफेस्ट फ़ाइल में उत्पन्न एपीआई कुंजी का उपयोग करें। इसे my-release-key.keystore के साथ साइन इन करें इसे डिवाइस पर दबाएगा।

4

बीटीडब्ल्यू, मैं विंडोज 7 चला रहा हूं। मैंने इसे दिनों तक फंसाया, जब तक कि मैंने निम्न की खोज नहीं की: मेरे पास एक से अधिक डीबग.किस्टोर हैं। एक पर है:

C:\android-sdk\.android\debug.keystore 

और एक और पर नहीं है,: एक बार मैंने पाया

C:\Users\David\.android\debug.keystore 

"C: \ Users \ David.android \ debug.keystore" मैंने किया था:

keytool -list -alias androiddebugkey -keystore C:\Users\David\.android\debug.keystore -storepass android -keypass android -v 

मैंने परिणामी SHA1 को Google कंसोल में सबमिट किया और एक एपीआई-कुंजी प्राप्त की जो काम करता है। "सी: \ android-sdk.android \ debug.keystore" पर कीस्टोर से SHA1 प्राप्त करना काम नहीं करता है।

18

सुनिश्चित करें कि सभी नीचे उल्लेख अंक ध्यान रखा जाता है:

1) गलत सेवा सक्षम था। सुनिश्चित करें कि "Google मानचित्र एंड्रॉइड एपीआई v2", नहीं "Google मानचित्र API v2" सक्षम है और एपीआई कुंजी को पुन: उत्पन्न करता है।

2) अपने तत्वों में निम्नलिखित तत्व जोड़ें। अपने आवेदन के नाम पैकेज के साथ com.example.mapdemo को बदलें।

3) का सही प्रमाणपत्र और कुंजी का उपयोग करें। रिलीज प्रमाणपत्र, जो आपके फोन पर ऐप चलाने पर डीबगिंग के दौरान काम नहीं करेगा। आपको इसके बजाय डीबगिंग कीस्टोर प्रमाणपत्र फिंगरप्रिंट का उपयोग करना होगा।

+1

FUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU। ठीक है, गूगल मैप्स एंड्रॉइड एपीआई v2 याद किया, मैं मूर्ख हूँ। धन्यवाद – user1286653

+0

"Google मैप्स एंड्रॉइड एपीआई v2", "Google मैप्स एपीआई v2" नहीं <<< मेरा लापरवाही – Hoyin

+0

इस सुस्तता के कारण मेरे दिन का आधा दिन –

0

मुझे एक ही समस्या थी। मैंने बस इस बिंदु को याद किया: जब आप अपनी Google एपीआई सेवाओं को सूचीबद्ध करते हैं, तो वहां तीन Google मानचित्र API उपलब्ध हैं।

Google मानचित्र Android API v2
गूगल मैप्स एपीआई v2
गूगल मैप्स एपीआई v3 ...

चेक आप Android संस्करण (Google मानचित्र Android API v2) सक्षम किया हुआ है, जब आप Android के लिए कोड। Google मानचित्र API v2 पर्याप्त नहीं था।

0

बस नया एसएचए के साथ एपीआई कुंजी और सबसे महत्वपूर्ण रूप से सही पैकेज नाम (com.example.mapdemo) बनाएं। अपने AndroidManifest.xml में नई जेनरेट की गई कुंजी का उपयोग करें।

मुझे लगता है कि हमें सभी नए ग्रहण परियोजनाओं के लिए नई एपीआई कुंजी की आवश्यकता है जो Google मानचित्र का उपयोग करता है (नए कुंजी को पैकेज नाम की भी आवश्यकता होती है, जो सभी परियोजनाओं के लिए अनिवार्य रूप से अलग है)।

1

तुम गलत सेवा "Google मानचित्र Android API v2", नहीं "गूगल मैप्स एपीआई v2"

0

कई घंटे खर्च करने के बाद सक्षम हो सकता है, समस्या अंततः हल किया गया था:

अगर में से कोई भी आप अपनी समस्या को हल करने में मदद मिली ऊपर, में मूल्यों/strings.xml

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/map_key"/> 

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="map_key">YOUR_KEY</string> 
</resources> 
0

मैं सब कुछ क्या इस कार्य को प्राप्त करने की आवश्यकता रहा था आपकी API कुंजी डाल करने के लिए प्रयास करें। मेरी कुंजी, मैनिफेस्ट, कोड इत्यादि ठीक थे। लेकिन, बहुत समय बर्बाद करने के अंत में, डीबग कीस्टोर जो मैं उपयोग कर रहा था वह गलत था। यह सब कुछ के बाद SHA1 फिंगरप्रिंट के बारे में था।

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