VectorDrawables不支持android之前的api 21(尽管compat向量已启用)

时间:2017-12-07 09:46:03

标签: android android-appcompat android-vectordrawable

我在我的应用中关注:

// Config
defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

// Activity
public abstract class BaseActivity<T extends ViewDataBinding> extends AppCompatActivity {
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }
}

// XML; Location: res/drawable
<Button
    android:id="@+id/btAdd"
    android:onClick="onClick"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:drawableLeft="@drawable/ic_add_black_24dp"
    android:padding="8dp"
    android:text="@string/add"
    android:textColor="@color/md_black_1000"
    app:backgroundTint="@color/md_white_1000"/>

我仍然在运行android API的设备上遇到异常&lt; 21:

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_add_black_24dp.xml from drawable resource ID #0x7f070070

这是一个矢量drawable。我认为上面两个语句会产生影响,矢量drawables被转换为运行android API的设备的pngs&lt; 21。

我的所作所为:

  • 启用vectorDrawables.useSupportLibrary
  • 致电AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
  • 确保向量drawable不在res/drawables-anyres/drawables
  • 使用app:srcCompat代替ImageViews =&gt;与我的问题无关,因为我正在使用app:src
  • 我使用目标API 26 +支持库版本26.1.0

我还缺少什么?

0 个答案:

没有答案