【问题标题】:Binary XML file line #26: Error inflating class android.widget.TextView二进制 XML 文件第 26 行:膨胀类 android.widget.TextView 时出错
【发布时间】:2015-02-09 08:15:38
【问题描述】:

我正在使用 Android Studio,当我在布局应用程序中使用 textview 时正在关闭显示错误:

android.view.InflateException: Binary XML file line #26: Error inflating class android.widget.TextView
            at android.view.LayoutInflater.createView(LayoutInflater.java:633)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
            at com.SubFragment.onCreateView(SubFragment.java:20)
            at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
            at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
            at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
            at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
            at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
            at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
            at android.view.View.measure(View.java:17430)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:875)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
            at android.view.View.measure(View.java:17430)

在我的 Fragment 类中

public class SubFragment extends Fragment{


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_homescreen, container, false);// getting error here


        return rootView;
    }


}

XML 代码:

<LinearLayout
        android:layout_margin="10dp"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@drawable/offers">


        <ImageView
            android:id="@+id/imageButtonOffers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/offers_icon" />

        <TextView
            android:id="@+id/textViewOffers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imageButtonOffers"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dp"
            android:gravity="center_horizontal"
            android:text="Offer"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/white"
            android:textSize="15sp" />


    </LinearLayout>

这段代码在 Eclipse 中运行良好。当我尝试在 Studio 中工作时唯一的问题

【问题讨论】:

  • 你能发布 xml 和所有内容吗?
  • 仔细检查您的 xml 文件,您在其中声明了 textview,这意味着您在某处犯了拼写错误。可能忘记了一个字符什么的。
  • @user1140237 添加了 xml
  • @SboneloMbhamali,我对此进行了测试,同样的代码在 eclipse 中工作,我已经发布了我的 xml 代码以供参考
  • 您缺少 namespace 声明。将xmlns:android="http://schemas.android.com/apk/res/android" 添加到LinearLayout。

标签: android xml textview


【解决方案1】:
android:background="@drawable/offers"

我希望提供的是图像,它比屏幕大,所以用一些颜色代码替换 n 尝试

这样

android:background="#ff0000"

希望它有效..

也检查一下

android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

编辑:

删除这一行

android:textAppearance="?android:attr/textAppearanceMedium"

【讨论】:

  • 删除这个android:textAppearance="?android:attr/textAppearanceMedium"n试试
  • 这个答案对我有帮助
  • 我解决了这个奇怪的问题,当更改android:textSize 行时,我直接输入了值,而不是来自dimens xml 文件。像这样:android:textSize="35sp"
  • @MS Gadag,如果“parent="TextAppearance.Widget.AppCompat.Toolbar.Title">”这一行在styles.xml中,我们该怎么办
【解决方案2】:

我清理了你的 xml 并添加了命名空间:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_margin="10dp"
    android:layout_weight="1"
    android:background="@drawable/offers"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/imageButtonOffers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/offers_icon" />

<TextView
    android:id="@+id/textViewOffers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:gravity="center_horizontal"
    android:text="Offer"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@color/white"
    android:textSize="15sp" />

</LinearLayout>

当您使用 LinearLayout 时,“android:layout_below”或“android:layout_centerHorizo​​ntal”等参数并非无效。

【讨论】:

  • 首先我尝试了相对布局,所以我使用了 layout_below 参数..这是我的主要 xml 的一个孩子,所以据我所知,不需要再次为孩子添加命名空间
  • 您应该粘贴整个 xml 布局。否则会令人困惑。
【解决方案3】:

我也遇到了这个错误。

我通过简单地重新创建包含TextView 的新.xml 文件来解决它。 就我而言,错误是 xml 版本(v21\abc.xml)。 代码在 android 版本 6(marshmallow) 中运行良好,而不是在 android 版本 4.4(kitkat) 中运行时抛出错误。

【讨论】:

    【解决方案4】:

    我也遇到了同样的问题。 确保您的任何布局中都没有 tools:targetApi="lollipop"。相反,在layout 下有两个布局,一个在layout-v21 文件夹下添加另一个。

    【讨论】:

    • 当我遇到这个问题时,我所做的只是删除 android:drawableLeft 语句。事实证明,将图像分配给预棒棒糖设备上的 AutoCompleteTextView 会导致问题。在我的 Lollipop 手机上,它运行良好。
    【解决方案5】:

    似乎旧版本的 Android 不支持标签,

    android:background="@drawable/rounded_corner"
    android:textSize="?android:textAppearanceMedium"
    

    在这种情况下,将其从 XML 文件中删除,并尝试从 Java 或 Kotlin 代码中加载属性(最好在 try...catch 或 if...else 子句中)

    希望对你有帮助

    【讨论】:

      【解决方案6】:

      您必须在项目的 res-> 字体文件夹中创建另一个 .xml 文件。之后调用 .xml 文件中的字体文件。

      <font
          android:font="@font/rubikbold"/>
      

      在这里,我的项目中有一个 robik 粗体字体文件。

      【讨论】:

        【解决方案7】:

        检查您的主题父级。如果主题父级和样式父级之间发生不匹配,则会导致属性丢失或无法解决错误。 就我而言,我使用的是 parent 主题:

        Theme.AppCompat.DayNight.NoActionBar

        但在我的风格中,我使用 parent 作为:

        TextAppearance.AppCompat.Widget.PopupMenu.Small

        由于它们不同,导致无法解析符号错误。 希望这可能会有所帮助..

        【讨论】:

          【解决方案8】:

          我遇到了类似的错误,但我发现属性 textAppearance 没有正确写入。

          最初是 android:textSize="?android:textAppearanceMedium" 而不是 android:textAppearance="?android:textAppearanceMedium"

          你可以在这里https://developer.android.com/reference/android/widget/TextView阅读更多关于TextView的信息

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-05-13
            • 2016-01-12
            • 2016-11-02
            • 2018-03-04
            • 2020-03-07
            • 2017-10-29
            相关资源
            最近更新 更多