Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 761
Jarrod Avatar asked May 11 '26 22:05

Jarrod


1 Answers

I managed to solve it thanks to this answer.

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

like image 196
Jiří Mauritz Avatar answered May 14 '26 10:05

Jiří Mauritz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!