2016-08-04 24 views
0

Einstellung Ich habe ein Floating Action-Button-Steuerelement zu meiner Haupttätigkeit hinzugefügt:InflateException geworfen, wenn id auf einem FloatingActionButton

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:minHeight="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
     <android.support.design.widget.FloatingActionButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|right" 
      android:layout_marginRight="@dimen/main_fab_margin" 
      android:layout_marginBottom="@dimen/main_fab_margin" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:src="@drawable/ic_main_fab" 
      app:fabSize="normal" 
      app:backgroundTint="@color/color_primary" 
      app:elevation="@dimen/main_fab_elevation"/> 
    </RelativeLayout> 

    <!-- Pull-out navigation drawer (a.k.a hamburger menu) --> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:menu="@menu/navigationmenu" 
     app:headerLayout="@layout/drawerheader" /> 

</android.support.v4.widget.DrawerLayout> 

Dieses eine InflateException wirft, die wie folgt aussieht:

Android.Views.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.design.internal.NavigationMenuItemView 

The Floating Action-Schaltfläche ist ein Kind eines RelativeLayout, das ein Kind eines android.support.v4.widget.DrawerLayout ist.

Nun ist der seltsame Teil, wenn ich

android:id="@+id/main_fab" 

aus dem obigen Code entfernen, funktioniert alles perfekt.

Ich habe keine Ahnung, was das verursachen könnte. Ich muss wirklich eine ID auf den Button setzen, damit ich die Klicks im Code-Behind kontrollieren kann.

Irgendwelche Ideen?

aktualisieren

Stapelüberwachung:

Unhandled Exception: 

Android.Views.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.design.internal.NavigationMenuItemView 

08-04 16:49:39.952 E/AndroidRuntime(16025): FATAL EXCEPTION: main 
08-04 16:49:39.952 E/AndroidRuntime(16025): Process: RA16mobile.RA16mobile, PID: 16025 
08-04 16:49:39.952 E/AndroidRuntime(16025): android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.design.internal.NavigationMenuItemView 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.design.internal.NavigationMenuPresenter$NormalViewHolder.<init>(NavigationMenuPresenter.java:278) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onCreateViewHolder(NavigationMenuPresenter.java:379) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onCreateViewHolder(NavigationMenuPresenter.java:328) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1211) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.View.layout(View.java:16646) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewGroup.layout(ViewGroup.java:5440) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2183) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1943) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1119) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6060) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.Choreographer.doFrame(Choreographer.java:606) 
08-04 16:49:39.952 E/AndroidRuntime(16025):  at android.view.Choreograp 
08-04 16:49:40.000 I/Process (16025): Sending signal. PID: 16025 SIG: 9 
+0

Können Sie das vollständige XML anzeigen? –

+0

Es ist seltsam, dass Sie diese Ausnahme von Attributen auf dem 'FloatingActionButton' bekommen. Was ist deine "Activity" Superklasse? Sie sollten 'AppCompatActivity' verwenden. –

+0

Die Hauptaktivität erbt von AppCompatActivity, nicht von Activity. Vollständiger XML-Beitrag – kformeck

Antwort

1

Versuchen Sie, Ihre obj/bin Ordner atomisieren, Starten Sie den IDE, und machen Sie einen sauberen deploy. (d. h. adb uninstall packagename). Ich habe dieses Problem sehr häufig in Bezug auf Error inflating class android.support.design.internal.NavigationMenuItemView gesehen und es scheint zu beheben.

Ich dachte ursprünglich, dass dies ein Xamarin spezifischer Fehler war, bis ich ihn auch in Native Java gefunden habe. Grundsätzlich können Sie mit den gleichen Schritten die Probleme in beiden Ländern lösen.