我尝试使用以下build.gradle文件编译一个android项目:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
maven {
url 'https://github.com/Goddchen/mvn-repo/raw/master/'
}
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
}
dependencies {
compile 'com.android.support:appcompat-v7:18.0.+'
compile 'com.android.support:support-v4:18.0.+'
compile 'com.google.android.gms:play-services:3.2.+'
compile 'com.facebook.android:facebook:3.5.+'
compile 'com.android:volley:1.0'
compile 'org.jraf:android-switch-backport:1.0'
}
但是这失败并出现以下错误:
:TestProject:processDebugResources
/home/lukas/apps/Splots_test/apps/TestProject/build/res/all/debug/values/values.xml:1622: error: Error: No resource found that matches the given name: attr 'switchStyle'.
:TestProject:processDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':TestProject:processDebugResources'.
> Could not call IncrementalTask.taskAction() on task ':TestProject:processDebugResources'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
在查看生成的values.xml后,我发现它缺少android-switch-backport的declare-styleable“Theme”部分。
此部分在Appcompat和AndroidSwitchBackport中定义,但最终文件中只包含其中一个:
lukas@lukas-Workstation:~/apps/Splots_test/apps$ grep -r 'declare-styleable name="Theme"' .
./TestProject/build/exploded-bundles/ComAndroidSupportAppcompatV71800.aar/res/values/values.xml: <declare-styleable name="Theme">
./TestProject/build/exploded-bundles/OrgJrafAndroidSwitchBackport10.aar/res/values/values.xml: <declare-styleable name="Theme">
有没有办法告诉gradle它应该合并两个库的属性?
答案 0 :(得分:5)
我也遇到了这个问题。我认为你需要更改android-switch-backport库中的attrs.xml文件。
尝试更改此
<declare-styleable name="Theme">
<attr name="switchStyle" format="reference" />
<attr name="switchPreferenceStyle" format="reference" />
</declare-styleable>
到此:
<declare-styleable name="AppTheme">
<attr name="switchStyle" format="reference" />
<attr name="switchPreferenceStyle" format="reference" />
</declare-styleable>
答案 1 :(得分:1)
您知道,我是Switch Backport库的开发人员,从版本1.3.1开始,此问题不再存在。
(确保在升级时包含正确的repo,因为它不再是maven central)。