How to implement Google Maps new version of API v2

Posted by bapatla on Stack Overflow See other posts from Stack Overflow or by bapatla
Published on 2012-12-17T10:27:45Z Indexed on 2012/12/17 11:03 UTC
Read the original article Hit count: 439

Hi every one I came to know that google maps has deprecated its previous version API v1 and introduced a new version of google maps API v2. I tried out one example by following some links in google any how i am pretty sure that i got the api key correctly by providing the exact hash key code and managed to get the correct api key. Now i managed to write some code as well but when i tried to execute the code i am getting the errors please help me to solve this here is my code

and i even tried the sample codes provided by google play services an i got the same problem

this is the sample that i have done by referring some links in google

main activity

                       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"/>  

and finally my manifest file

                           <?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>  

i run my application in emulator of version 4.2 and api level of 17 i got following error

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

later i came to know that these version cant execute in emulator so i tried executing it with two devices one is Sony xperia u of android version 2.3.7 and Samsung galaxy tab of android version 4.1.1 and these are my outputs

12-17 14:37:02.468: D/AndroidRuntime(7636): Shutting down VM
12-17 14:37:02.468: W/dalvikvm(7636): threadid=1: thread exiting with uncaught exception (group=0x41f672a0)
12-17 14:37:02.476: E/AndroidRuntime(7636): FATAL EXCEPTION: main
12-17 14:37:02.476: E/AndroidRuntime(7636): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.apv/com.example.apv.MyMapActivity}: java.lang.ClassNotFoundException: com.example.apv.MyMapActivity
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2021)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread.access$600(ActivityThread.java:140)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.os.Handler.dispatchMessage(Handler.java:99)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.os.Looper.loop(Looper.java:137)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread.main(ActivityThread.java:4895)
12-17 14:37:02.476: E/AndroidRuntime(7636): at java.lang.reflect.Method.invokeNative(Native Method)
12-17 14:37:02.476: E/AndroidRuntime(7636): at java.lang.reflect.Method.invoke(Method.java:511)
12-17 14:37:02.476: E/AndroidRuntime(7636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller .run(ZygoteInit.java:994)
12-17 14:37:02.476: E/AndroidRuntime(7636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
12-17 14:37:02.476: E/AndroidRuntime(7636): at dalvik.system.NativeStart.main(Native Method) 12-17 14:37:02.476: E/AndroidRuntime(7636): Caused by: java.lang.ClassNotFoundException: com.example.apv.MyMapActivity
12-17 14:37:02.476: E/AndroidRuntime(7636): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-17 14:37:02.476: E/AndroidRuntime(7636): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-17 14:37:02.476: E/AndroidRuntime(7636): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
12-17 14:37:02.476: E/AndroidRuntime(7636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2012)
12-17 14:37:02.476: E/AndroidRuntime(7636): ... 11 more

could any one please suggest me to how to get this done and give me some links of new version API v2 tutorials of google maps and some examples links please help me

© Stack Overflow or respective owner

Related posts about android

Related posts about google-maps