首页 > 解决方案 > Inflate Exception Binary XML file line # Error inflating class TextView

问题描述

好的,我在编程时遇到了几次这个 logcat 错误。9/10 它发生在 imageView 上,我可以通过调整可绘制对象的大小或将所述可绘制对象放在更高密度的文件夹中来解决它,但这次有很大不同。从字面上看,就在昨天,该应用程序运行良好,但现在突然当我单击一个加载片段的按钮时,此错误被称为:

    android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class TextView
        at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at com.figurativefootball.figurativefootball.FlipCardAdapter.onCreateViewHolder(FlipCardAdapter.java:67)
        at com.figurativefootball.figurativefootball.FlipCardAdapter.onCreateViewHolder(FlipCardAdapter.java:27)
        at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6685)
        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5869)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
        at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)
        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
        at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
        at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3529)
        at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1858)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1191)
        at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:876)
        at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:895)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1171)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
        at android.view.View.layout(View.java:16668)
        at android.view.ViewGroup.layout(ViewGroup.java:5439)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
        at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2720)
        at android.view.View.layout(View.java:16668)
        at a

the following is binary line #27:

        <TextView
            android:id="@+id/playerSetPosition"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:gravity="center"
            android:textColor="@color/maroon"
            android:textAllCaps="true"
            android:textSize="20sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

这是java代码这是在布局应该被膨胀的适配器内部

 @Override
    public FlipCardAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                         int viewType) {
        CardView cv =
                (CardView) LayoutInflater.from(
                        parent.getContext()).inflate(
                        R.layout.flip_card_image, parent, false);

        return new FlipCardAdapter.ViewHolder(cv);
    }

我真的很难过。有什么事吗?

标签: javaandroidexceptiontextviewandroid-inflate

解决方案


如果有人有同样的问题,我希望这会有所帮助:

重申一下,如果在 imageView 上发生这种情况,请将您的可绘制对象移动到更高密度的文件夹或调整其大小。有时它显然可能只是一个 xml 错字。就我而言,出于某种原因,升级到 android studio 3.0.1 后,属性:“android:textAllCaps:”true”导致崩溃。删除此属性后一切恢复正常。为什么?我不知道。必须成为 api 中的 android bug


推荐阅读