,java,android,xml"/>

首页 > 解决方案 > 在某些设备中出现错误“android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class"

问题描述

Issue: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>在某些设备上有一个。

它在适配器中充气时发生RecyclerView(如从日志中找到的那样)。

崩溃发生在以下设备中。

编辑 -所有崩溃的设备都有 android 6

以下设备不会发生崩溃。

AdapterAnimationPicker.java

@Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        context = parent.getContext();

        // error happening below line
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_animation_picker,parent,false);
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
        return new ViewHolder(v);
    }

card_animation_picker.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clipToPadding="false"
    android:background="@drawable/rounded_corner_card_primary">

    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <FrameLayout
                android:id="@+id/card_anim_picker_framelayout"
                android:background="@drawable/rounded_corner_card_primary"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintDimensionRatio="H,16:9"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">
                <com.airbnb.lottie.LottieAnimationView
                    android:id="@+id/card_anim_picker_animation_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </FrameLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </LinearLayout>

    <com.github.florent37.expansionpanel.ExpansionLayout
        app:expansion_expanded="false"
        android:id="@+id/card_anim_picker_expansionLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="4dp">
            <Button
                app:cornerRadius="9999dp"
                app:rippleColor="@color/colorAccent"
                android:id="@+id/card_anim_picker_edit_btn"
                android:backgroundTint="@color/colorPrimaryLessLight"
                style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="edit"
                android:textColor="@color/colorAccent"/>
        </LinearLayout>
    </com.github.florent37.expansionpanel.ExpansionLayout>

</LinearLayout>

这是日志文件

FATAL EXCEPTION: main
Process: com.w3saver.typography, PID: 16223
android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.w3saver.typography.Adapters.AdapterAnimationPicker.onCreateViewHolder(AdapterAnimationPicker.java:52)
    at com.w3saver.typography.Adapters.AdapterAnimationPicker.onCreateViewHolder(AdapterAnimationPicker.java:27)
    at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
    at androidx.recyclerview.widget.LayoutState.next(LayoutState.java:100)
    at androidx.recyclerview.widget.StaggeredGridLayoutManager.fill(StaggeredGridLayoutManager.java:1609)
    at androidx.recyclerview.widget.StaggeredGridLayoutManager.onLayoutChildren(StaggeredGridLayoutManager.java:683)
    at androidx.recyclerview.widget.StaggeredGridLayoutManager.onLayoutChildren(StaggeredGridLayoutManager.java:605)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
    at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3336)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5955)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
    at android.view.View.measure(View.java:18809)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2112)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1228)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1464)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1119)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6060)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
    at android.view.Choreographer.doCallbacks(Choreographer.java:670)
    at android.view.Choreographer.doFrame(Choreographer.java:606)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
    at android.os.Handler.handleCallback(Handler.java:746)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Loo

我已经尝试过的东西

我不知道我的代码有什么问题我从过去 2 天开始挖掘这个问题。如果有人帮助fegureit,那将非常有帮助。

标签: javaandroidxml

解决方案


尝试这个 :

在drawable中使用png文件而不是在drwable-24中,而是在xxhdpi中粘贴一件事,然后在所有设备中进行测试。当然,它适用于所有设备。如果它不是仅图像形状的东西,请在您的问题中分享该 xml。

快乐编码:)


推荐阅读