2017-08-04 109 views
0

我有一个活动与制表符设置和选项卡使用视图传呼机工作,这里的问题,它适用于棒棒糖,棉花糖和牛轧糖罚款,但任何低于5.0的应用程序崩溃,我不知道什么可能导致这个错误。 这里是我的主要业务布局标签:Tabs崩溃的应用程序在Android版本以下棒棒糖

<?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> 

,这里是我的onCreate方法:

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); 
     } 

我使用Xamarin.Android。这是错误:

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

错误输出:

[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

请问你可以粘贴错误日志吗? – gStephin

+0

现在添加了它们。 –

+0

你可以发布'@ layout/tabs'的内容吗? – cwbowron

回答

0

我相信问题是android:background="?attr/colorPrimary"。我认为这是在Android 5.0中引入的。您可以从您的调色板中对@color/foo进行硬编码,也可以在styles.xml中设置特定于Android版本的样式。

+0

它不是,我改变了值,但仍然有相同的错误。 –

0

终于有了解决办法,旁边的attr?功能,这也是一个问题

<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:theme="@style/ThemeOverlay.Material.Light"> 

不知道为什么它的工作,但使得它的工作。如果任何人都可以解释为什么它的工作,我会很高兴。

相关问题