【问题标题】:Caused by: android.view.InflateException: Binary XML file引起:android.view.InflateException:二进制 XML 文件
【发布时间】:2019-03-31 01:47:54
【问题描述】:

更新到 gradle 3.1.4 并移至 buildToolsVersion "27.0.3"

我正面临这个问题

android.view.InflateException: Binary XML file line #41: Binary XML file line #41: Error inflating class 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 in 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 文件。

【问题讨论】:

  • 确保您的图像 /ic_demo 位于 res/drawable 文件夹中而不是 drawable-v24
  • 粘贴您的 xml 代码。不看就很难调试。检查您是否在 xml 中收到错误
  • can't find resource in your project 错误表示
  • 使用AppCompatImageView 而不是ImageView,这可能会解决您的问题。
  • 不要使用这个应用程序:srcCompat="@drawable/ic_demo" 使用:android:src

标签: android android-layout gradle android-library


【解决方案1】:

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

在你应用的 build.gradle 添加:

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

对于低于 API 21 的矢量支持,将以下内容添加到 onCreate:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);  

另外,将您的 ImageView 替换为 android.support.v7.widget.AppCompatImageView

【讨论】:

  • 你能从 android studio 生成矢量图形并用该图像进行测试。看起来您的矢量图形可能不受支持。
  • 它曾经在 gradle 3.0 以下工作,但从今天开始我面临这个问题。
  • 发现一个问题。有些向量不受支持,有些受支持。但在较低版本中,所有矢量都可以完美地工作。你能建议我如何将 PNG 转换为 SVG 吗?
  • 您可以从此链接检查支持的标签是否向后兼容。 developer.android.com/studio/write/vector-asset-studio
【解决方案2】:

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

【讨论】:

  • 它已经在 res/drawable 中,不在 v21 或 v24 中,我仍然面临这个问题
  • 然后清理项目,如果需要无效/重新启动
【解决方案3】:

替换

app:srcCompat="@drawable/ic_demo"

android:src="@drawable/ic_demo"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    相关资源
    最近更新 更多