Android 工作室 1.5.1:找不到 属性 'vectorDrawables'
Android studio 1.5.1: Could not find property 'vectorDrawables'
我正在使用 Android Studio 1.5.1、Gradle 2.8 和我的项目 min sdk vserion:14,目标 sdk 版本:23。
因此,当我通过文档 Google 将 vectorDrawables 添加到配置时:Added VectorDrawable support library,出现以下错误:
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 说明时感到困惑。
如果您使用 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'
)
专门从com.android.tools.build:gradle:1.5.0
升级。
编辑/build.gradle并设置:
buildscript {
...
dependencies {
...
classpath 'com.android.tools.build:gradle:2.0.0'
...
}
}
编辑 /gradle/wrapper/gradle-wrapper.properties 并设置:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
编辑您的模块' build.gradle 并添加:
android {
...
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
}
...
}
我在使用 v3.4.2 上的 Gradle 插件时遇到了这个问题。它阻止了项目同步的完成。
问题已通过删除 vectorDrawables
并将 vectorDrawables.useSupportLibrary = true
添加到 defaultConfig
得到解决。
旧
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.example.android.diceroller"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}vectorDrawables
}
新
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.example.android.diceroller"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
如果你有 useSupportLibary
最新版本
使用
vectorDrawables.useSupportLibary(true)
In your defaultconfig
我正在使用 Android Studio 1.5.1、Gradle 2.8 和我的项目 min sdk vserion:14,目标 sdk 版本:23。
因此,当我通过文档 Google 将 vectorDrawables 添加到配置时:Added VectorDrawable support library,出现以下错误:
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 说明时感到困惑。
如果您使用 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'
)
专门从com.android.tools.build:gradle:1.5.0
升级。
编辑/build.gradle并设置:
buildscript { ... dependencies { ... classpath 'com.android.tools.build:gradle:2.0.0' ... } }
编辑 /gradle/wrapper/gradle-wrapper.properties 并设置:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
编辑您的模块' build.gradle 并添加:
android { ... defaultConfig { ... vectorDrawables.useSupportLibrary = true } ... }
我在使用 v3.4.2 上的 Gradle 插件时遇到了这个问题。它阻止了项目同步的完成。
问题已通过删除 vectorDrawables
并将 vectorDrawables.useSupportLibrary = true
添加到 defaultConfig
得到解决。
旧
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.example.android.diceroller"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}vectorDrawables
}
新
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.example.android.diceroller"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
如果你有 useSupportLibary
最新版本
使用
vectorDrawables.useSupportLibary(true)
In your defaultconfig