Jarrod
Jarrod

Reputation: 71

Android SupportMapFragment did not create a view error

Im really struggling to figure out this weird issue. In my android app i have a fragment with contains a support map fragment. The google maps works fine when GPS is turned on and this fragment creates fine. But when GPS is turned off the app wont even instantiate, it just crashes upon opening it.

Here is the stack trace:

07-31 22:35:47.905: E/AndroidRuntime(32324): FATAL EXCEPTION: main
07-31 22:35:47.905: E/AndroidRuntime(32324): android.view.InflateException: Binary XML file line #9: Error inflating class fragment
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at au.net.gokart.fragments.TrackInfoFragment.onCreateView(TrackInfoFragment.java:69)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.View.measure(View.java:15524)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5109)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.View.measure(View.java:15524)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5109)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.View.measure(View.java:15524)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.View.measure(View.java:15524)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5109)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2397)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.View.measure(View.java:15524)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1986)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1227)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1400)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1120)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4604)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.Choreographer.doFrame(Choreographer.java:525)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.os.Handler.handleCallback(Handler.java:615)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.os.Looper.loop(Looper.java:137)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.app.ActivityThread.main(ActivityThread.java:4921)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at java.lang.reflect.Method.invokeNative(Native Method)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at java.lang.reflect.Method.invoke(Method.java:511)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at dalvik.system.NativeStart.main(Native Method)
07-31 22:35:47.905: E/AndroidRuntime(32324): Caused by: java.lang.IllegalStateException: Fragment com.google.android.gms.maps.SupportMapFragment did not create a view.
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:308)
07-31 22:35:47.905: E/AndroidRuntime(32324):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
07-31 22:35:47.905: E/AndroidRuntime(32324):    ... 46 more

This is my layout xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >


<fragment
    android:id="@+id/map2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    class="com.google.android.gms.maps.SupportMapFragment"
    map:uiRotateGestures="true"
     map:uiScrollGestures="true"
    map:uiTiltGestures="true"
    map:uiZoomControls="true"
    map:uiZoomGestures="true" />


</LinearLayout>

This is my fragment onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle  savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);

    this.activity = this.getActivity();

    ActionBar ab = getActivity().getActionBar();
    if (ab.getNavigationMode() == ActionBar.NAVIGATION_MODE_STANDARD) {
        ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    }

    ab.setDisplayHomeAsUpEnabled(false);

    checkForGooglePlayServices();

    View view = inflater.inflate(R.layout.fragment_trackinfo, container,    false);

    setUpMapIfNeeded();
    return view;
}

Any help would be greatly appreciated

Upvotes: 3

Views: 1894

Answers (1)

Jiř&#237; Mauritz
Jiř&#237; Mauritz

Reputation: 441

I managed to solve it thanks to this answer.

You need to change fragment keyword in your layout xml to FrameLayout.

Upvotes: 4

Related Questions