在 ImageView 中设置 Vector Drawable 导致应用程序在旧 SDK 中崩溃

Set Vector Drawable in ImageView cause app crash in old SDK

我在图像 src 中使用了 Vector Drawable,如下所示:

 <ImageView
                android:id="@+id/isSold"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                android:visibility="gone"
                app:srcCompat="@drawable/ic_soldout_24px"
                tools:ignore="MissingPrefix"/>

我还添加了这些清单:

defaultConfig {
        vectorDrawables.useSupportLibrary=true
    }

我用了compile 'com.android.support:appcompat-v7:23.2.1'

但我的应用程序在旧 SDK 中崩溃并显示消息 Error inflating class ImageView

使用 android.support.v7.widget.AppCompatImageView 而不是 ImageView:

 <android.support.v7.widget.AppCompatImageView
    android:id="@+id/isSold"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:visibility="gone"
    app:srcCompat="@drawable/ic_soldout_24px"
    tools:ignore="MissingPrefix"/>

使用普通<ImageView>,IF顶级activity/dialog由android.support.v7.app.AppCompatActivity提供。

您应该只需要在编写自定义视图时手动使用 AppCompatImageView

这是来自文档。