Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android studio 1.5.1: Could not find property 'vectorDrawables'

I'm using Android Studio 1.5.1, Gradle 2.8 and my project min sdk vserion:14, target sdk version: 23.

So, When I add vectorDrawables to configuration by documentation Google: Added VectorDrawable support library, I get following error:

Error:(13, 0) Could not find property 'vectorDrawables' on ProductFlavor_Decorated{name=main, dimension=null, minSdkVersion=ApiVersionImpl{mApiLevel=14, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=23, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=25, versionName=1.0.25, applicationId=com.smsoft.alibaba, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}.

this is my build.gradle file:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.smsoft.alibaba"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 25
        versionName "1.0.25"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     testCompile 'junit:junit:4.12'
     compile 'com.android.support:appcompat-v7:23.2.0'
     compile 'com.android.support:design:23.2.0'
     compile 'com.android.support:support-v4:23.2.0'
     compile 'com.android.support:cardview-v7:23.2.0'
}

Anybody know how to fix this problem ?

EDIT

Thanks to @Gabriele Mariotti to signal for my confused between gradle and gradle plugin. I'm confused when reading the addition of Compact Vector Drawables instructions.

like image 547
SBotirov Avatar asked Feb 29 '16 06:02

SBotirov


2 Answers

If you’re using v2.0 or above of the Gradle plugin you have to use:

android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}

If you hare using v1.5.0 or below of the Gradle plugin you need to add the following to your app’s build.gradle:

android {
  defaultConfig {
    // Stops the Gradle plugin’s automatic rasterization of vectors
    generatedDensities = []
  }
  // Flag to tell aapt to keep the attribute ids around
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }
}

Don't confuse gradle with the gradle plugin. Check the build.gradle in the root folder (or inside the module) to get the version used by the gradle plugin (check the line classpath 'com.android.tools.build:gradle:1.5.0')

like image 72
Gabriele Mariotti Avatar answered Nov 13 '22 23:11

Gabriele Mariotti


Specifically to upgrade from com.android.tools.build:gradle:1.5.0.

  1. Edit /build.gradle and set:

    buildscript {
        ...
        dependencies {
            ...
            classpath 'com.android.tools.build:gradle:2.0.0'
            ...
        }
    }
    
  2. Edit /gradle/wrapper/gradle-wrapper.properties and set:

    distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
    
  3. Edit your module(s)' build.gradle and add:

    android {
        ...
        defaultConfig {
            ...
            vectorDrawables.useSupportLibrary = true
        }
        ...
    }
    
like image 40
swooby Avatar answered Nov 13 '22 23:11

swooby