在 API < 21 上更新 build.gradle 后停止使用矢量绘图的项目

Stop working project with vector drawables after update build.gradle on API < 21

我有工作项目。

我的 gradle 文件中有:

defaultConfig {
        vectorDrawables.useSupportLibrary = true
        vectorDrawables.generatedDensities = []
}

我也打来activity:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

应用程序完美运行。现在改为:

执行gradle clean assembleDebug.

应用程序继续在 API > 20 的设备上运行。但是对于 API < 21(google android 模拟器)在启动应用程序时会崩溃。 我在 logcat 中看到错误:Resources$NotFoundException: Resource ID #0x7f080058(0x7f080058 可绘制 abc_vector_test)。

为什么?

UPD 2017-07-19:已修复并在 com.android.tools.build:gradle:3.0.0-alpha7

中发布

我添加到 gradle.properties

android.enableAapt2=false

它解决了我的错误。

UPD 2017-07-19:已修复并在 com.android.tools.build:gradle:3.0.0-alpha7

中发布

我遇到了同样的问题,将 Android Studio 降级到以前的 canary5 版本并在 build.gradle

中写入以下内容
buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
    ...

Gradle 版本 3 的插件使用新的 AAPT,但有一些错误。
在阅读错误跟踪器上的一些问题后,我发现 Gradle 有完全禁用 AAPT2 的选项:android.enableAapt2=false

也从发行说明到 alpha5:

AAPT2. We are continuing to stabilize AAPT2 which enables incremental resource processing. If your build fails due to resource processing issue, please send us a bug report. To temporarily disable AAPT, set android.enableAapt2=false in your gradle.properties file.
Roboelectric is currently not compatible with AAPT2