Note : 1. When I am using Maps V2 as a standalone application, its working fine. But When I am using Maps V2 which is a sub activity of my project getting below mentioned error logs. 2. My application works fine with Map v1 but I want to upgrade my application from Map V1 to V2
Added below mentioned code to call Map Activity : try { Class.forName(" com.google.android.gms.maps.SupportMapFragment ");Intent n=new Intent(Information.this,Gmaps.class); n.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);startActivity(n); }
Followed below steps to upgrade Google Maps v1 to v2
http://javapapers.com/android/android-show-current-location-on-map-using-google-maps-api/ http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
My map activity classes
public class Information extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
Crittercism.init(getApplicationContext(), "CRITTERCISM_APP_ID");
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
playInformation();
}//oncreate
private void playInformation(){
try{
Class.forName("com.google.android.gms.maps.SupportMapFragment");
Intent n=new Intent(Information.this,Gmaps.class);
n.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(n);
}catch(Exception e){
e.printStackTrace();
setContentView(R.layout.error);
TextView tv = (TextView)findViewById(R.id.txtError);
tv.setText("Maps Does Not Supported By This Device");
tv.setTextSize(26);
}
}
}
public class Gmaps extends FragmentActivity {
// Google Map
private GoogleMap googleMap;
private Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
try {
// Loading map
initilizeMap();
// Changing map type
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
// Showing / hiding your current location
googleMap.setMyLocationEnabled(true);
// Enable / Disable zooming controls
googleMap.getUiSettings().setZoomControlsEnabled(false);
// Enable / Disable my location button
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
// Enable / Disable Compass icon
googleMap.getUiSettings().setCompassEnabled(true);
// Enable / Disable Rotate gesture
googleMap.getUiSettings().setRotateGesturesEnabled(true);
// Enable / Disable zooming functionality
googleMap.getUiSettings().setZoomGesturesEnabled(true);
double lat=12.9667; double lon=77.5667;
// Adding a marker
addMarker(googleMap, lat, lon);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
/**
* function to load map If map is not created it will create it for you
* */
private void initilizeMap() {
if (googleMap == null) {
//googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
public void addMarker(GoogleMap googleMap, double lat, double lon)
{
if (marker != null) {
marker.remove();
}
// Adding a marker
MarkerOptions myMarker = new MarkerOptions().position(
new LatLng(lat, lon))
.title("Hello Bengaluru ");
// changing marker color
myMarker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED));
marker = googleMap.addMarker(myMarker);
// Move the camera to last position with a zoom level
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(lat, lon)).zoom(16).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
}
}
I am using maps as a sub-activity for my app and after implementing above code getting below given error logs
********
11-10 20:03:42.659: W/dalvikvm(9654): Unable to resolve superclass of Lcom/google/android/gms/maps/SupportMapFragment; (168)
11-10 20:03:42.659: W/dalvikvm(9654): Link of class 'Lcom/google/android/gms/maps/SupportMapFragment;' failed
11-10 20:03:42.659: W/System.err(9654): java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.classForName(Native Method)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:217)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:172)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.playInformation(Information.java:594)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.onCreate(Information.java:294)
11-10 20:03:42.669: W/System.err(9654): at android.app.Activity.performCreate(Activity.java:4470)
11-10 20:03:42.669: W/System.err(9654): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.access$600(ActivityThread.java:128)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
11-10 20:03:42.669: W/System.err(9654): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 20:03:42.669: W/System.err(9654): at android.os.Looper.loop(Looper.java:137)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.main(ActivityThread.java:4517)
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-10 20:03:42.669: W/System.err(9654): at dalvik.system.NativeStart.main(Native Method)
11-10 20:03:42.669: W/System.err(9654): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/maps/SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): ... 19 more
11-10 20:03:42.679: W/System.err(9654): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-10 20:03:42.679: W/System.err(9654): ... 19 more******
------------------------------------------------------------------------**
Add the below permission in your manifest file in your <application>
<uses-library android:name="com.google.android.maps"/>
If you still have issues in adding your map component please refer the tutorial to work with map API v2 directly as it is pretty straight forward.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.