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

三世轮回 提交于 2019-12-30 18:00:28

问题


I have working project.

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

I have in my gradle files:

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

I call in activity too:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

Application works perfectly. Now change to:

  • com.android.tools.build:gradle:3.0.0-alpha6
  • add to repositories google() line

Execute gradle clean assembleDebug.

App continue works on devices with API > 20. But for API < 21 (google android emulator) get crash on start application. I see in logcat error: Resources$NotFoundException: Resource ID #0x7f080058 (0x7f080058 is drawable abc_vector_test).

Why?

UPD 2017-07-19: It was fixed and released in com.android.tools.build:gradle:3.0.0-alpha7


回答1:


Gradle plugin from version 3 use new AAPT, that have some bugs.
After reading some issues on bug tracker, I've found that Gradle has option for full disable AAPT2: android.enableAapt2=false

Also from release notes to 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




回答2:


I'm add to gradle.properties line

android.enableAapt2=false

and it's solve my error.

UPD 2017-07-19: It was fixed and released in com.android.tools.build:gradle:3.0.0-alpha7




回答3:


I am facing the same problem, downgrade Android Studio to previous version canary5 and write the following in your build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
    ...


来源:https://stackoverflow.com/questions/45056756/stop-working-project-with-vector-drawables-after-update-build-gradle-on-api-21

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!