在API <21更新build.gradle后,停止使用向量绘图工作项目

我有工作项目。

  • minSdkVersion 17
  • com.android.tools.build:gradle:2.3.3
  • gradle 4.1
  • Android Studio 3 Canary 6

我在我的gradle文件中:

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

我也打电话给:

 AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) 

应用程序完美运作 现在转到:

  • com.android.tools.build:gradle:3.0.0-alpha6
  • 添加到存储库google()

执行gradle clean assembleDebug

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

为什么?

UPD 2017-07-19 :它被修复并发布在com.android.tools.build:gradle:3.0.0-alpha7

Solutions Collecting From Web of "在API <21更新build.gradle后,停止使用向量绘图工作项目"

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

另外从发行说明到alpha5:

AAPT2。 我们正在继续稳定AAPT2,从而实现增量资源处理。 如果您的构build由于资源处理问题而失败,请向我们发送错误报告。 要暂时禁用AAPT,请在您的gradle.properties文件中设置android.enableAapt2 = false。
Roboelectric目前与AAPT2不兼容

我添加到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' ...