10

हाय के Google मानचित्र के नए संस्करण को कैसे कार्यान्वित करें हाय मुझे पता चला कि Google मानचित्र ने अपने पिछले संस्करण एपीआई v1 को हटा दिया है और Google मानचित्र API v2 का एक नया संस्करण प्रस्तुत किया है। मैंने Google में कुछ लिंक का पालन करके एक उदाहरण की कोशिश की, मुझे यह भी यकीन है कि मुझे सटीक हैश कुंजी कोड प्रदान करके एपीआई कुंजी सही ढंग से मिली है और सही एपीआई कुंजी प्राप्त करने में कामयाब रहा है। अब मैं कुछ कोड लिखने में कामयाब रहा लेकिन जब मैंने कोड को निष्पादित करने का प्रयास किया तो मुझे त्रुटियां मिल रही हैं, कृपया इसे हल करने में मेरी सहायता करें, मेरा कोडएपीआई v2

और मैंने Google play सेवाओं द्वारा प्रदान किए गए नमूना कोडों की भी कोशिश की। एक ही समस्या

इस नमूने है कि मैं गूगल में

मुख्य गतिविधि वर्ग

package com.example.apv; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.FragmentManager; 

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    FragmentManager fragmentManager = getFragmentManager(); 
    MapFragment mapFragment = (MapFragment)fragmentManager.findFragmentById(R.id.map); 
    GoogleMap googleMap = mapFragment.getMap(); 
    LatLng sfLatLng = new LatLng(37.7750, -122.4183); 
    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
    googleMap.addMarker(new MarkerOptions().position(sfLatLng).title("San Francisco") 
       .snippet("Population: 776733") 
      .icon(BitmapDescriptorFactory.defaultMarker(
    BitmapDescriptorFactory.HUE_AZURE))); 
    googleMap.getUiSettings().setCompassEnabled(true); 
    googleMap.getUiSettings().setZoomControlsEnabled(true); 
    googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sfLatLng, 10)) 

     } 
} 

main.xml

कुछ लिंक हवाला देते हुए किया है मिल गया
     <?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" 
           class="com.google.android.gms.maps.MapFragment"/> 

और अंत में मेरी मैनिफ़ेस्ट फ़ाइल

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

          <permission 
        android:name="com.codebybrian.mapsample.permission.MAPS_RECEIVE" 
            android:protectionLevel="signature"/> 


            <!--Required permissions--> 

      permission oid:name="com.codebybrian.mapsample.permission.MAPS_RECEIVE"/> 

       <!--Used by the API to download map tiles from Google Maps servers: --> 
       <uses-permission android:name="android.permission.INTERNET"/> 

        <!--Allows the API to access Google web-based services: --> 
       <uses-permission 
     android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 


        <!--Optional permissions--> 
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

     <!--Version 2 of the Google Maps Android API requires OpenGL ES version 2 --> 
       <uses-feature 
         android:glEsVersion="0x00020000"  
          android:required="true"/> 

    application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> 

       <activity android:name=".MyMapActivity" 
         android:label="@string/app_name" 
          > 
          <intent-filter> 
         <action android:name="android.intent.action.MAIN"/> 
         <category android:name="android.intent.category.LAUNCHER"/> 
           </intent-filter> 
          </activity> 

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


          </manifest> 

मैं मैं त्रुटि निम्न गया संस्करण 4.2 और 17 साल की एपीआई स्तर की एमुलेटर में अपने आवेदन चलाने

12-17 10:06:52.590: E/Trace(826): error opening trace file: No such file or directory (2) 
12-17 10:06:52.590: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 
12-17 10:06:52.590: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 
12-17 10:06:52.590: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 
12-17 10:06:52.680: I/ActivityThread(826): Pub com.google.android.gms.plus;com.google.android.gms.plus.action: com.google.android.gms.plus.provider.PlusProvider 
12-17 10:06:52.740: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 
12-17 10:06:52.740: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 
12-17 10:06:52.760: W/Trace(826): Unexpected value from nativeGetEnabledTags: 0 

बाद में मुझे पता करने के लिए इन संस्करण आया एमुलेटर में निष्पादित नहीं किया गया है इसलिए मैंने इसे दो उपकरणों के साथ निष्पादित करने का प्रयास किया है, सोनी एंड्रॉइड संस्करण 2.3.7 का सोनी एक्सपीरिया और एंड्रॉइड संस्करण 4.1.1 का सैमसंग गैलेक्सी टैब है और ये मेरे आउटपुट

12-17 16:24:48.965: I/dalvikvm(9088): Could not find method  com.example.apv.MainActivity.getFragmentManager, referenced from method com.example.apv.MainActivity.onCreate 
    12-17 16:24:48.965: W/dalvikvm(9088): VFY: unable to resolve virtual method 3460: Lcom/example/apv/MainActivity;.getFragmentManager()Landroid/app/FragmentManager; 
    12-17 16:24:48.965: D/dalvikvm(9088): VFY: replacing opcode 0x6e at 0x0009 
    12-17 16:24:48.965: D/dalvikvm(9088): VFY: dead code 0x000c-0065 in Lcom/example /apv/MainActivity;.onCreate (Landroid/os/Bundle;)V 
     12-17 16:24:49.066: D/AndroidRuntime(9088): Shutting down VM 
    12-17 16:24:49.066: W/dalvikvm(9088): threadid=1: thread exiting with uncaught exception (group=0x4001d578) 
     12-17 16:24:49.086: E/AndroidRuntime(9088): FATAL EXCEPTION: main 
     12-17 16:24:49.086: E/AndroidRuntime(9088): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.apv/com.example.apv.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
     12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread.access$1500(ActivityThread.java:121) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.os.Handler.dispatchMessage(Handler.java:99) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.os.Looper.loop(Looper.java:138) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread.main(ActivityThread.java:3701) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at java.lang.reflect.Method.invokeNative(Native Method) 
     12-17 16:24:49.086: E/AndroidRuntime(9088): at java.lang.reflect.Method.invoke(Method.java:507) 
      12-17 16:24:49.086: E/AndroidRuntime(9088):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at dalvik.system.NativeStart.main(Native Method) 
      12-17 16:24:49.086: E/AndroidRuntime(9088): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
      12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.inflate(LayoutInflater.java:386) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.Activity.setContentView(Activity.java:1657) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at com.example.apv.MainActivity.onCreate(MainActivity.java:20) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 
        12-17 16:24:49.086: E/AndroidRuntime(9088): ... 11 more 
      12-17 16:24:49.086: E/AndroidRuntime(9088): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.example.apv-1.apk] 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
       12-17 16:24:49.086: E/AndroidRuntime(9088):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
        12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.createView(LayoutInflater.java:471) 
        12-17 16:24:49.086: E/AndroidRuntime(9088): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:549) 
       12-17 16:24:49.086: E/AndroidRuntime(9088): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
       12-17 16:24:49.086: E/AndroidRuntime(9088):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
        12-17 16:24:49.086: E/AndroidRuntime(9088): ... 19 more 

किसी भी एक मुझे यह कैसे किया पाने के लिए करने के लिए सुझाव और मुझे गूगल मैप्स का नया संस्करण API v2 में ट्यूटोरियल की कुछ लिंक्स और कुछ उदाहरण लिंक मेरी मदद कृपया

+0

कृपया इसे और अधिक पठनीय बनाने के लिए अपने कोड को सही तरीके से इंडेंट करें। और एक संक्षिप्त मानचित्र उदाहरण के लिए https://github.com/apacha/maps_demo देखें। बेहतर उदाहरणों के लिए 'एंड्रॉइड एसडीके \ एक्स्ट्रा \ google \ google_play_services \ samples \ maps' –

उत्तर

0

देने के रूप में अपने मुख्य गतिविधि नाम के लिए सुनिश्चित करें कृपया सकता है आप इसे प्रकट में घोषित करते हैं:

Caused by: java.lang.ClassNotFoundException: com.example.apv.MyMapActivity 

शायद एक पैकेज नामकरण समस्या? अपनी संपूर्ण MyMapActivity पोस्ट करें, न केवल ऑनक्रेट।

+0

मैंने अपडेट किया है कि एक – bapatla

+0

मानचित्र एक्सेस अनुमतियां आपके पैकेज के नाम से शुरू होनी चाहिए। '<अनुमति एंड्रॉइड: नाम =" com.codebybrian.mapsample.permission.MAPS_RECEIVE "एंड्रॉइड: सुरक्षा लेवल =" हस्ताक्षर "/>' 'अनुमति और एंड्रॉइड: name =" com.example.apv.permission.MAPS_RECEIVE "एंड्रॉइड के साथ बदलें: सुरक्षा लेवल = "हस्ताक्षर" /> ' –

-5

आप तो अपनी गतिविधि टुकड़े उपयोग करना चाहते हैं यानी अपने MainActivityFragmentActivity

+0

गलत। मानचित्र के लिए Google दस्तावेज़ स्पष्ट रूप से अन्यथा बताते हैं। –

0

प्रोजेक्ट के गुण -> एंड्रॉयड -> जोड़ें ... लाइब्रेरी के अंतर्गत और गूगल प्ले-services_lib जिसे आपने पहले इन निर्देशों के अनुसार एक पुस्तकालय परियोजना के रूप में जोड़ा लेने:

https://developers.google.com/maps/documentation/android/intro

+0

मैंने वह काम किया है, लेकिन जब मैं इसे चालू करना शुरू करता हूं तो उपरोक्त मेरी त्रुटियां हैं – bapatla

0

आपके द्वारा प्रदान किए गए कोड में त्रुटियां हैं। आपका गतिविधि नाम मुख्य गतिविधि है लेकिन मैनिफेस्ट फ़ाइल में, आपके द्वारा घोषित एकमात्र गतिविधि का नाम MyMapActivity है। इसके अलावा आपकी मेनिफेस्ट फ़ाइल में एक ओपनिंग एप्लिकेशन टैग नहीं है।

इन दो त्रुटियों को सुधारने के लिए, मैंने आपका कोड चलाया है और आपके द्वारा उल्लिखित अपवाद प्राप्त किया है। मैंने Google- play-Services लाइब्रेरी प्रोजेक्ट जोड़कर समस्या को ठीक किया।मुझे लगता है कि आप इसे जोड़ना भूल गए हैं या यह सही ढंग से जोड़ा नहीं गया है। आप Google मानचित्र v2 के डेवलपर दस्तावेज़ में इसके बारे में विवरण पा सकते हैं।

यह जांचने के लिए, अपनी परियोजना पर राइट क्लिक करें और गुणों पर जाएं। फिर बाएं से एंड्रॉइड का चयन करें। इस पृष्ठ के निचले हिस्से में, आपको लाइब्रेरी प्रोजेक्ट टेबल मिल जाएगी। सुनिश्चित करें कि Google-play-Services लाइब्रेरी प्रोजेक्ट सूची में है और इसमें एक हरा चिह्न है। यदि यह वहां नहीं है, तो दाएं "जोड़ें .." बटन पर क्लिक करके इसे जोड़ें।

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

0

इस यूट्यूब ट्यूटोरियल वीडियो को देखें। यह शुरुआती लोगों के लिए है और आपको में स्क्रैचyoutube link से एक सरल Google मानचित्र V2 ऐप बनाने में आपकी सहायता करेगा। और जहां तक ​​ग्रहण एमुलेटर पर Google मानचित्र V2 चल रहा है, यह उत्तर Running Google Maps v2 on emulator

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