2013-07-18 14 views
23

मैं Google मानचित्र एपीआई v2 (https://developers.google.com/maps/documentation/android/start#specify_settings_in_the_application_manifest) के लिए Google मानचित्र प्रलेखन पर प्रदान किया गया नमूना कोड चला रहा हूं।Google मानचित्र API v2 डिवाइस पर मानचित्र नहीं दिखा रहा है

कोड सफलतापूर्वक चलाया गया है लेकिन डिवाइस डिवाइस पर लोड नहीं है। डिवाइस पर केवल सफेद स्क्रीन दिखाई देती है। मैं 4.0.3 संस्करण एंड्रॉइड डिवाइस का उपयोग कर रहा हूँ।

enter image description here

1) मैं इस परियोजना के लिए सेवा सक्षम होना चाहिए।

enter image description here

2) कुंजी जनरेट की गई

enter image description here

enter image description here

3) "google-प्ले-services_lib" पुस्तकालय के रूप में इस परियोजना में:

enter image description here

4) एंड्रॉयड मैनिफ़ेस्ट:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mapdemo" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

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

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

    <uses-permission android:name="com.example.mapdemo.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-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

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

     <activity 
      android:name="com.example.mapdemo.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

5) गतिविधि:

package com.example.mapdemo; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

6) लेआउट:

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment"/> 
+1

मैं भी इस के साथ भ्रमित किया गया था, यह पहली बार मैं API कंसोल में प्रवेश किया पैकेज का नाम पूरा नहीं हुआ था लगता है। फिर भी मानचित्र को पुनर्स्थापित करने के बाद भी दिखाई नहीं दिया। लेकिन मुझे बस कुछ मिनट इंतजार करना पड़ा - किसी कारण से पहली बार बहुत लंबा समय लगा। – Ixx

+0

जिज्ञासा से बाहर - आप अनुमतियों को कैसे समझते हैं? मैंने Google डॉक्स पढ़े हैं और केवल यह कहा है कि आपको इंटरनेट, ACCESS_NETWORK_STATE, WRITE_EXTERNAL_STORAGE अनुमतियां और वैकल्पिक रूप से ACCESS_COARSE_LOCATION और ACCESS_FINE_LOCATION अनुमतियां चाहिए ..... तो MAPS_RECEIVE और READ_GSERVICES कहां से आते हैं? – Chris

उत्तर

15

उपयोग टुकड़ा गतिविधि

जैसे:

public class Maps extends FragmentActivity { 
    GoogleMap map; 
    double lat; 
    double lan; 
    boolean flag = false; 

    // private LocationManager lm; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mapptry); 

     map = ((SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map)).getMap(); 
       } 
    } 
करने के लिए

<fragment 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" /> 

संपादित

गॉट उर map.xml यह भी

आयात android.support.v4.app.FragmentActivity करने के लिए

बदलें;

परियोजना> गुण> buildpath-> जावा का निर्माण पथ इससे पहले कि आप इस राइट क्लिक कर -> पुस्तकालयों .. तो बाहरी जार

जोड़ने पर क्लिक करें

उपयोगकर्ता \ android- करने के लिए जाना SDKs \ एक्स्ट्रा कलाकार \ एंड्रॉयड \ समर्थन \ v4

और android-समर्थन-v4.jar चयन

पुनश्च: यह सब आपके द्वारा दी गई है आर एपीआई कुंजी सही है।आप API कुंजी तो गलत है भी तो वह केवल एक सफेद स्क्रीन से पता चलता है

+0

अपने एपीआई कुंजी का पर्दाफाश न करें जैसा आपने अपना प्रश्न @vinidog पोस्ट करते समय किया था, यह यहां चारों ओर अच्छा अभ्यास नहीं है। आप उस – larrytech

+0

को अपडेट करना चाहेंगे हाँ मेरी एपीआई कुंजी अमान्य थी, मैंने कुंजी को फिर से बनाया और यह काम किया। – ashishdhiman2007

3

कोशिश

GoogleMap googleMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap(); 

जोड़ सकते हैं और

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/map" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:name="com.google.android.gms.maps.MapFragment" 
/> 

आप आवेदन के बाहर निम्नलिखित कोड को शामिल किया है के साथ अपने xml को बदलने के लिए इसके बजाय टैग को

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

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

आशा है कि यह जो एक ही समस्या

1

सामना कर रहा है API कुंजी के साथ इस समस्या हो सकता है किसी की मदद कर सकते हैं या यदि आप बस अपनी परियोजना API कंसोल में अपने SHA1 फिंगरप्रिंट की जांच (https://console.developers.google.com/project) और अपने ग्रहण विंडोज -> वरीयताएँ -> Android -> बिल्ड समान हैं, अन्यथा बस कंसोल से SHA1 को पथ बनाने या इसके विपरीत बनाने के लिए अद्यतन करें।

0

अधिकांश शायद अपनी समस्या हल हो जाएगा जब आप नीचे यकीन है कि चीजों का उल्लेख करते हैं:

  1. सक्रिय गूगल मानचित्र एपीआई

  2. सही पैकेज नाम का उपयोग करते हुए यह था मेरे मामले में एपीआई कुंजी (पैदा करने गलती) .. और यह आपके मामले में भी समस्या प्रतीत होता है क्योंकि पैकेज नाम गलत प्रतीत होता है (com.example.mapdemo)

  3. सुनिश्चित करें कि आप इसका उपयोग कर रहे हैं SHA1

आशा करने के लिए सही कीस्टोर फ़ाइल को उम्मीद है कि यह सहायक होगा।

0

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

https://developer.android.com/guide/topics/permissions/index.html

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