代码之家  ›  专栏  ›  技术社区  ›  jack_the_beast

Android:错误膨胀类<unknown>,原因:缺少主题.AppCompat主题[复制]

  •  0
  • jack_the_beast  · 技术社区  · 6 年前

    我正在尝试在一个回收查看项目中使用自定义表布局。请注意,相同的组件已经在应用程序的其他部分中使用过,没有问题(从未在recycleriew tho中出现过)。

    我要充气的项目只包含TabLayout:

    <layout 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.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <my.package.CustomTabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintTop_toTopOf="parent">
    
                <android.support.design.widget.TabItem
                    android:id="@+id/tab1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/text1" />
    
                <android.support.design.widget.TabItem
                    android:id="@+id/tab2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/text2" />
    
            </my.package.CustomTabLayout>
    
        </android.support.constraint.ConstraintLayout>
    
    </layout>
    

    例外情况:

     android.view.InflateException: Binary XML file line #10: Binary XML file line #10: Error inflating class <unknown>
        Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class <unknown>
        Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
            at android.view.LayoutInflater.createView(LayoutInflater.java:647)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
            at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:126)
            at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:95)
            at my.package.recycler.MyAdapter.onCreateViewHolder(MyAdapter.kt:25)
            at my.package.recycler.MyAdapter.onCreateViewHolder.onCreateViewHolder(MyAdapter.kt:16)
    [...]
    Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.
            at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:33)
            at android.support.design.widget.TabLayout.<init>(TabLayout.java:298)
            at android.support.design.widget.TabLayout.<init>(TabLayout.java:292)
            at my.package.CustomTabLayout.<init>(CustomTabLayout.java:23)
    

    DataBindingUtil.inflate(LayoutInflater.from(MyApplication.getContext()), R.layout.tabs_item, parent, false)
    

    适配器中有其他膨胀,工作正常。

    有什么想法吗?

    0 回复  |  直到 6 年前
    推荐文章