2017-08-04 5 views
0

J'ai une activité avec la configuration des onglets et les onglets utilise une vue Pager pour travailler et voici le problème, ça fonctionne bien sur sucette, guimauve et Nougat mais tout en dessous de 5.0 l'application se bloque, je Je ne sais pas ce qui pourrait causer cette erreur. Voilà ma mise en page Activité principale avec l'onglet:Onglets App s'écraser dans la version android ci-dessous sucette

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@android:style/ThemeOverlay.Material.Light"> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:titleTextColor="@android:color/black" 
      app:titleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" 
      app:layout_scrollFlags="scroll|enterAlways|snap" /> 
     <include 
      android:id="@+id/tabs" 
      layout="@layout/tabs" /> 
    </android.support.design.widget.AppBarLayout> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/mainFAB" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:clickable="true" 
     android:layout_gravity="bottom|end" 
     app:fabSize="normal" 
     app:srcCompat="@drawable/ic_edit" /> 
</android.support.design.widget.CoordinatorLayout> 

et Voici mon OnCreate Méthode:

protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 

      _adapter = new TabsAdapter(this, SupportFragmentManager); 
      _pager = FindViewById<ViewPager>(Resource.Id.viewpager); 
      var tabs = FindViewById<TabLayout>(Resource.Id.tabs); 

      _pager.Adapter = _adapter; 
      tabs.SetupWithViewPager(_pager); 

      _pager.OffscreenPageLimit = 5; 

      SupportActionBar.SetDisplayHomeAsUpEnabled(false); 
      SupportActionBar.SetHomeButtonEnabled(false); 
     } 

J'utilise Xamarin.Android. Ceci est l'erreur:

Android.Views.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TabLayout 

la sortie d'erreur:

[ERROR] FATAL UNHANDLED EXCEPTION: Android.Views.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TabLayout ---> Java.Lang.Reflect.InvocationTargetException: Exception of type 'Java.Lang.Reflect.InvocationTargetException' was thrown. ---> Java.Lang.UnsupportedOperationException: Can't convert to color: type=0x2 
08-04 13:06:47.696 E/mono-rt (1291): --- End of inner exception stack trace --- 
08-04 13:06:47.696 E/mono-rt (1291): --- End of inner exception stack trace --- 
08-04 13:06:47.696 E/mono-rt (1291): --- End of managed Android.Views.InflateException stack trace --- 
08-04 13:06:47.696 E/mono-rt (1291): android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TabLayout 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.rInflate(LayoutInflater.java:745) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
08-04 13:06:47.696 E/mono-rt (1291): at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) 
08-04 13:06:47.696 E/mono-rt (1291): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
08-04 13:06:47.696 E/mono-rt (1291): at md52271f797d1fff0147ee94ae02da80c1d.MainActivity.n_onCreate(Native Method) 
08-04 13:06:47.696 E/mono-rt (1291): at md52271f797d1fff0147ee94ae02da80c1d.MainActivity.onCreate(MainActivity.java:31) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.Activity.performCreate(Activity.java:5231) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.ActivityThread.access$800(ActivityThread.java:135) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
08-04 13:06:47.696 E/mono-rt (1291): at android.os.Handler.dispatchMessage.Constructor.constructNative(Native Method) 
08-04 13:06:47.696 E/mono-rt (1291): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
08-04 13:06:47.696 E/mono-rt (1291): at android.view.LayoutInflater.createView(LayoutInflater.java:594)(Handler.java:102) 
08-04 13:06:47.696 E/mono-rt (1291): at android.os.Looper.loop(Looper.java:136) 
08-04 13:06:47.696 E/mono-rt (1291): at android.app.ActivityThread.main(ActivityThread.java:5001) 
08-04 13:06:47.696 E/mono-rt (1291): at java.lang.reflect.Method.invokeNative(Native Method) 
08-04 13:06:47.696 E/mono-rt (1291): at java.lang.reflect.Method.invoke(Method.java:515) 
08-04 13:06:47.696 E/mono-rt (1291): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
08-04 13:06:47.696 E/mono-rt (1291): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
08-04 13:06:47.696 E/mono-rt (1291): at dalvik.system.NativeStart.main(Native Method) 
08-04 13:06:47.696 E/mono-rt (1291): Caused by: java.lang.reflect.InvocationTargetException 
08-04 13:06:47.696 E/mono-rt (1291): at java.lang.reflect 
+0

pouvez-vous s'il vous plaît coller le journal des erreurs ?? – gStephin

+0

Les ai ajoutés maintenant. –

+0

Pouvez-vous poster le contenu de '@ layout/tabs'? – cwbowron

Répondre

0

Je crois que le problème est android:background="?attr/colorPrimary". Je pense que cela a été introduit dans Android 5.0. Vous pouvez soit coder un @color/foo depuis votre palette de couleurs, soit définir des styles spécifiques aux versions Android dans votre fichier styles.xml.

+0

Ce n'était pas, je change les valeurs mais toujours la même erreur. –

0

Enfin obtenu un moyen de contourner cela, en dehors de l'attr? Feature, ce fut aussi un problème

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@android:style/ThemeOverlay.Material.Light"> 

Dans la propriété thème, je l'ai changé

android:theme="@style/ThemeOverlay.Material.Light"> 

Je ne sais pas pourquoi cela a fonctionné, mais qui fait le travail. Si quelqu'un peut expliquer pourquoi cela fonctionne, je serai heureux.