-1

I am trying to implement Google Maps V2 in my android apps while using fragments.

The code shows no errors however when i attempt to view the map, it crashes.

I've been stuck on this problem for a while now so any help or pointers in the right direction would be greatly appreciated.

Map frag class:

public class mapFrag extends Fragment { 

MapView mMapView;
GoogleMap googleMap;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {
    // inflate and return the layout
    View v = inflater.inflate(R.layout.fragment_map, container, false);
    mMapView = (MapView) v.findViewById(R.id.mapView);
    mMapView.onCreate(savedInstanceState);
    mMapView.onResume();//needed to get the map to display immediately

    try {
        MapsInitializer.initialize(getActivity());
    } catch (GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }

    googleMap = mMapView.getMap();



    //Perform any camera updates here

    return v;
}

}

layout xml

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.gms.maps.mapview 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/mapView">
</com.google.android.gms.maps.mapview>

logcat

 01-07 16:08:25.380: W/ImageView(1756):     at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-07 16:08:25.380: W/ImageView(1756):  at dalvik.system.NativeStart.main(Native Method)
01-07 16:08:25.400: D/AndroidRuntime(1756): Shutting down VM
01-07 16:08:25.400: W/dalvikvm(1756): threadid=1: thread exiting with uncaught exception (group=0x40a5a1f8)
01-07 16:08:25.400: E/AndroidRuntime(1756): FATAL EXCEPTION: main
01-07 16:08:25.400: E/AndroidRuntime(1756): android.view.InflateException: Binary XML file line #3: Error inflating class com.google.android.gms.maps.mapview
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at info.androidhive.slidingmenu.mapFrag.onCreateView(mapFrag.java:24)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:828)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1032)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.BackStackRecord.run(BackStackRecord.java:622)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1382)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.os.Handler.handleCallback(Handler.java:605)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.os.Looper.loop(Looper.java:137)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.app.ActivityThread.main(ActivityThread.java:4446)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at java.lang.reflect.Method.invokeNative(Native Method)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at java.lang.reflect.Method.invoke(Method.java:511)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at dalvik.system.NativeStart.main(Native Method)
01-07 16:08:25.400: E/AndroidRuntime(1756): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.mapview
01-07 16:08:25.400: E/AndroidRuntime(1756):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.view.LayoutInflater.createView(LayoutInflater.java:552)
01-07 16:08:25.400: E/AndroidRuntime(1756):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
01-07 16:08:25.400: E/AndroidRuntime(1756):     ... 17 more
Cœur
  • 37,241
  • 25
  • 195
  • 267
Conor Bradley
  • 145
  • 1
  • 3
  • 17
  • 1
    read this http://developer.android.com/reference/com/google/android/gms/maps/MapView.html – Raghunandan Jan 07 '14 at 16:29
  • you are using Google Maps wrong, read the documentation https://developers.google.com/maps/documentation/android/ – tyczj Jan 07 '14 at 16:29

2 Answers2

1
Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.mapview

It should be

<com.google.android.gms.maps.MapView

not

<com.google.android.gms.maps.mapview 

Also you should read

http://developer.android.com/reference/com/google/android/gms/maps/MapView.html

Users of this class must forward all the life cycle methods from the Activity or Fragment containing this view to the corresponding ones in this class. In particular, you must forward on the following methods:

onCreate(Bundle)
onResume()
onPause()
onDestroy()
onSaveInstanceState()
onLowMemory()

and you could refer this

Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment

Community
  • 1
  • 1
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
0

I do not see you using any fragments. It should be:

<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"/>
Marcin Orlowski
  • 72,056
  • 11
  • 123
  • 141