原因:android.view.InflateException:二进制XML文件

时间:2018-10-26 10:09:36

标签: android android-layout gradle android-library

更新到 gradle 3.1.4 并移至 buildToolsVersion“ 27.0.3”

我正在面对这个问题

android.view.InflateException:二进制XML文件第41行:二进制XML文件第41行:膨胀类ImageView时出错

Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class ImageView
Caused by: android.content.res.Resources$NotFoundException: Drawable com.demo.android:drawable/ic_demo with resource ID #0x7f080160
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_demo.xml from drawable resource ID #0x7f080160

我尝试将android:src替换为app:srcCompat并添加   vectorDrawables.useSupportLibrary = true在defaultConfig中

下面是布局文件代码

<RelativeLayout
     android:layout_width="wrap_content"
     android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/demo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:srcCompat="@drawable/ic_demo"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true"
                    android:visibility="gone" />
</RelativeLayout>

更新: 我发现了一个问题。问题是某些媒介正在运行,尽管其中某些媒介是从相同来源以SVG格式创建的,但其中一些不受支持。谁能建议我将PNG转换为SVG文件。

3 个答案:

答案 0 :(得分:0)

找不到可绘制的ic_demo
确保此可绘制对象位于res/drawable文件夹中,而不位于drawable-v21drawable-v24

之类的其他文件夹中

答案 1 :(得分:0)

替换

app:srcCompat="@drawable/ic_demo"

使用

android:src="@drawable/ic_demo"

答案 2 :(得分:0)

如果图像是矢量可绘制对象,请确保已完成以下代码。

在您应用的build.gradle中添加:

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

要获得对低于API 21的向量支持,请在onCreate中添加以下内容:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);  

此外,将ImageView替换为android.support.v7.widget.AppCompatImageView