Android 7.0 显示 TextView Inflating 错误

Posted

技术标签:

【中文标题】Android 7.0 显示 TextView Inflating 错误【英文标题】:Android 7.0 showing TextView Inflating error 【发布时间】:2020-07-24 19:23:42 【问题描述】:

我的 XML 代码:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@android:color/white"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_
        android:layout_
        android:padding="10dp">

        <TextView
            android:id="@+id/tvCollege"
            android:layout_
            android:layout_
            android:layout_centerVertical="true"
            android:text="NGF\nCOLLEGE"
            android:textColor="@android:color/black" />

        <TextView
            android:id="@+id/tvNameTeacher"
            android:layout_
            android:layout_
            android:layout_centerVertical="true"
            android:layout_gravity="center"
            android:layout_toLeftOf="@id/imgBarTeachers"
            android:layout_toRightOf="@id/tvCollege"
            android:gravity="center"
            android:textAllCaps="true"
            android:textColor="@color/colorAccent"
            android:textSize="18sp" />

        <ImageView
            android:id="@+id/imgBarTeachers"
            android:layout_
            android:layout_
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_menu" />
    </RelativeLayout>

    <View
        android:layout_
        android:layout_
        android:background="@android:color/black" />

    <LinearLayout
        android:layout_
        android:layout_
        android:paddingLeft="10dp"
        android:paddingTop="20dp"
        android:paddingRight="10dp"
        android:paddingBottom="20dp">

        <ImageView
            android:layout_
            android:layout_
            android:padding="10dp"
            android:src="@drawable/ic_teachers" />

        <View
            android:layout_
            android:layout_
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="9dp"
            android:layout_marginRight="9dp"
            android:background="@android:color/black" />

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/tvSubjectTeacher"
                android:layout_
                android:layout_
                android:textAllCaps="true"
                android:textColor="#414141"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/tvMobileTeacher"
                android:layout_
                android:layout_
                android:textSize="18sp" />

            <TextView
                android:id="@+id/tvMailTeacher"
                android:layout_
                android:layout_
                android:textSize="18sp" />

        </LinearLayout>

    </LinearLayout>

    <View
        android:layout_
        android:layout_
        android:background="@android:color/black" />


    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerViewMenuTeacher"
        android:layout_
        android:layout_
        android:scrollbars="none" />

</LinearLayout>

我的应用程序运行良好,但是当我在 android 7.0 中运行我的应用程序时,它向我显示了这个错误。 我得到的错误:

Process: com.ngfcet.ngfconnection, PID: 21684
    java.lang.RuntimeException: Unable to start activity ComponentInfocom.ngfcet.ngfconnection/com.ngfcet.ngfconnection.activities.TeacherActivity: android.view.InflateException: Binary XML file line #21: Binary XML file line #21: Error inflating class TextView

我认为这个错误也可以由firebase形成,因为

哪个 textview 有 +id/tvCollege 没有显示任何错误,因为我没有通过 firebase 将任何数据放入其中

整个应用程序的主题

<resources xmlns:tools="http://schemas.android.com/tools">

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowLightStatusBar" tools:targetApi="m">true</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/white</item>
        <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/white</item>d

        <item name="android:fontFamily">sans-serif-medium</item>
    </style>

</resources>

【问题讨论】:

你为TeacherActivity设置的主题是什么? 我补充说,在我的问题中请检查 你在你的项目上运行过 lint 吗? 我相信这就是这个问题/解决方案:issuetracker.google.com/issues/64053344#comment3。基本上,将sans-serif-medium 移动到&lt;string&gt; 资源,并参考您的android:fontFamily @MikeM。非常感谢我的问题通过从 styles.xml 中删除 sans-serif-medium 解决了 【参考方案1】:

太简单了。我已经删除了

<item name="android:fontFamily">sans-serif-medium</item>

来自 styles.xml

谢谢!现在效果很好

【讨论】:

以上是关于Android 7.0 显示 TextView Inflating 错误的主要内容,如果未能解决你的问题,请参考以下文章

来自sqlite的Android中的Textview显示

如何在 Android 中更改 TextView 的 fontFamily

android:如何在TextView实现图文混排

带有变量的Android TextView id?

android TextView实现滚动显示效果

Android中用TextView显示大量文字的方法