添加appcompat-v7 api级别22时出错

时间:2015-09-30 17:10:04

标签: android android-studio android-appcompat

我试图将appcompat-v7添加到我的项目中,但是当我运行gradle sync时会抛出以下错误:

/path/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.1/res/values/values.xml 错误:(2)属性"布局"已定义

这是我的build.gradle,我只需添加行compile 'com.android.support:appcompat-v7:22.2.1'

/path/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.1/res/values/values.xml
Error:(2) Attribute "layout" has already been defined

    compileSdkVersion 22
    buildToolsVersion "22.0.1"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
}
...
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:22.2.1'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.google.android.gms:play-services-analytics:7.3.0'
    compile('org.simpleframework:simple-xml:2.7.1') {
        exclude group: 'stax', module: 'stax-api'
        exclude group: 'xpp3', module: 'xpp3'
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') {
        transitive = true;
    }
}

2 个答案:

答案 0 :(得分:0)

您的项目或其中一个依赖项可能会定义“布局”属性。根据我的经验,当发生这种情况时,gradle输出包含的信息将引导您到定义duplicate属性的位置。然后,您可以经常使用此信息来跟踪和重命名冲突属性。如果您从gradle粘贴完整输出,它可以帮助我们找出确切的原因。

答案 1 :(得分:0)

日志确实描述了问题,我在文件res/values/attr.xml

上找到了以下代码段
<declare-styleable name="CustomListView">
    <attr name="layout" format="integer"/>
</declare-styleable>

我评论了代码和Bingo!