2017-02-12 13 views
0

私の活動ではスナックバーを表示しようとしていますが、InflateExceptionは常に私を驚かせます。私のプロジェクトの初期段階では、後でそれを動作させることができます。私は自分のアクティビティにフラグメントを追加し、その後はInflateExceptionを取得します。私はそれが関連するかどうか分からないけどContentFrameLeftDrawerがフラグメントされているSnackbar <merge>エラー

<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/DrawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.AppBarLayout 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:id="@+id/ToolbarLayout"> 
      <include 
       layout="@layout/Toolbar" 
       app:layout_scrollFlags="scroll|enterAlways" /> 
     </android.support.design.widget.AppBarLayout> 
     <FrameLayout 
      android:id="@+id/ContentFrame" 
      android:layout_below="@id/ToolbarLayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </RelativeLayout> 
    <FrameLayout 
     android:id="@+id/LeftDrawer" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" /> 
</android.support.v4.widget.DrawerLayout> 

こと:

コード:以下に示すように

Snackbar.Make(DrawerLayout, "Message", Snackbar.LengthLong).Show(); 

DrawerLayoutは、私の活動のルートビューをありますプレースホルダ

例外文字列:

Android.Views.InflateException: Binary XML file line #18: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true ---> Android.Views.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true 
    --- End of inner exception stack trace --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in /Users/builder/data/lanes/3511/501e63ce/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
    at Java.Interop.JniEnvironment+StaticMethods.CallStaticObjectMethod (Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00082] in /Users/builder/data/lanes/3511/501e63ce/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12649 
    at Android.Runtime.JNIEnv.CallStaticObjectMethod (System.IntPtr jclass, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x00000] in /Users/builder/data/lanes/3511/501e63ce/source/monodroid/src/Mono.Android/JNIEnv.g.cs:562 
    at Android.Support.Design.Widget.Snackbar.Make (Android.Views.View view, Java.Lang.ICharSequence text, System.Int32 duration) [0x00078] in <0d997552ddad494094d94e2a353b2022>:0 
    at Android.Support.Design.Widget.Snackbar.Make (Android.Views.View view, System.String text, System.Int32 duration) [0x00013] in <0d997552ddad494094d94e2a353b2022>:0 
    at FC.Android.Infrastructure.Activities.MainActivity.NavDrawer_NavigationItemSelected (System.Object sender, Android.Views.IMenuItem e) [0x00029] in E:\Documents\Visual Studio 2015\Projects\FC\FC.Android\Infrastructure\Activities\MainActivity.cs:73 
    --- End of managed Android.Views.InflateException stack trace --- 
android.view.InflateException: Binary XML file line #18: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.support.design.widget.Snackbar.<init>(Snackbar.java:188) 
    at android.support.design.widget.Snackbar.make(Snackbar.java:215) 
    at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method) 
    at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30) 
    at android.view.View.performClick(View.java:5204) 
    at android.view.View$PerformClick.run(View.java:21153) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5480) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:485) 
    ... 14 more 

私は以下の点を確認してください。

  1. 活動のテーマは、それが

編集機能しない代わりにDrawerLayoutWindow.DecorView.RootViewFindViewById(Android.Resource.Id.Content)を試みたTheme.AppCompat.Light.NoActionBar

  • から継承されます。 私は何か奇妙なことを発見しました:もし私がデバッグを使ってアプリケーションを実行すると、エラーが出ます。通常、(デバッガが接続されていない)アプリケーションを実行するとスナックバーは正常に動作します。

  • 答えて

    0

    それはDrawerlayout

    Snackbar.Make(contentFrame, "Message", Snackbar.LengthLong).Show(); 
    

    と、まず変数contentFrame

    Snakbar make

    +0

    残念ながら 'ContentFrame'は動作しませんに表示ContentFrameをバインドすることを忘れないでください上のContentFrameない上に表示してください – sinanyil

    +0

    と同じ正確なエラーですか? –

    +0

    はい、まだ同じエラー – sinanyil

    関連する問題