7

私はAndroid Studio 1.5.1、Gradle 2.8、および私のプロジェクト最小SDK vserion:14、ターゲットSDKバージョン:23を使用しています。

そのため、ドキュメント Google: added VectorDrawable support libraryで vectorDrawables を構成に追加すると、次のエラーが発生します。

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={}}.

これは私のbuild.gradleファイルです:

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'
}

この問題を解決する方法を知っている人はいますか?

編集

@Gabriele Mariotti に感謝し、gradle と gradle プラグインの間で混乱していることを知らせてくれました。Compact Vector Drawables 命令の追加を読むと混乱します。

4

4 に答える 4

21

v2.0以降のGradle プラグインを使用している場合は、次を使用する必要があります。

android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}

v1.5.0以下のGradle プラグインを使用している場合は、アプリの に以下を追加する必要があります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"
  }
}

gradle を gradle プラグインと混同しないでください。ルート フォルダー (またはモジュール内) をチェックbuild.gradleして、gradle プラグインで使用されるバージョンを取得します (行をチェックしますclasspath 'com.android.tools.build:gradle:1.5.0') 。

于 2016-02-29T07:33:25.960 に答える
5

具体的には からアップグレードしcom.android.tools.build:gradle:1.5.0ます。

  1. /build.gradle を編集して次のように設定します。

    buildscript {
        ...
        dependencies {
            ...
            classpath 'com.android.tools.build:gradle:2.0.0'
            ...
        }
    }
    
  2. /gradle/wrapper/gradle-wrapper.properties を編集して次を設定します。

    distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
    
  3. モジュールの build.gradle を編集して、以下を追加します。

    android {
        ...
        defaultConfig {
            ...
            vectorDrawables.useSupportLibrary = true
        }
        ...
    }
    
于 2016-04-06T21:55:44.410 に答える