我正在使用Android Studio 2.1.2。我用minSdkVersion开始了一个新项目为19.我的活动扩展了AppCompatActivity。该项目以使用片段的空活动开始。
使用API 24预览content_main.xml时,一切都很好。在预览API 19时,我遇到以下渲染问题:
The following classes could not be instantiated:
- android.support.v7.widget.Toolbar
java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat
我添加了我发现的与gradle有关的所有内容(2个文件):
classpath 'com.android.tools.build:gradle:2.1.2'
**vectorDrawables.useSupportLibrary = true**
buildToolsVersion "24.0.1"
compile 'com.android.support:appcompat-v7:24.1.1'
**compile "com.android.support:support-v4:24.1.1"**
compile 'com.android.support:design:24.1.1
但仍然出现错误。我在互联网上找到了很多答案。但没有人帮助。使用API 19的新工具栏是否有问题?
答案 0 :(得分:6)
这对我很有用
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example.app"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
请注意以上代码:
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
和
generatedDensities = []
答案 1 :(得分:0)
来自此Google Issue
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
请查看此问题以获取更多帮助。
<强>更新强>
按如下方式配置您的应用build.gradle
文件
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.3.0'
}
答案 2 :(得分:0)
首先,有两种类型的gradle文件。
build.gradle(Project: ProjectName)
build.gradle(Module: app)
有关这两个文件的详细信息,请查看此answer。
来到你的问题,
我在网上找到了很多答案,但都没有帮助。我正在使用 Android Studio 2.1.2,我的活动扩展了AppCompatActivity并添加了 到了gradle(2个文件)我发现的每件事情都相关:但仍然是 出现错误。
根据您发布的内容,您似乎没有在正确的位置添加正确的内容。
您不应将应用程序依赖项放在build.gradle(Project: ProjectName)
中 - Android Studio说,
//注意:不要在此处放置应用程序依赖项;他们属于
//在单个模块build.gradle文件中
因此,请将build.gradle(Project: ProjectName)
中的依赖项替换为
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
}
将build.gradle(Module: app)
中的依赖项替换为
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
}
完成上述操作后,您会看到&#34; 立即同步&#34;右上角的选项。点击它。 Android Studio将负责剩余的事情。
此question也与您类似。通过它。这可能有所帮助。
答案 3 :(得分:0)
添加:
<强>的build.gradle 强>
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
...
}
在Activity
课程之上:
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
最后一件事是将vector drawables
置于其他任何可绘制内容中,例如selector
,LayerList
等。如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/drawable_vector" />
</selector>
并使用上面的drawable,而不是直接设置矢量drawables。无论何时你想在棒棒糖前设备上使用矢量绘图,这都可以在其他地方使用。