已使用不兼容格式定义的属性(此处定义的原始属性)

时间:2016-09-06 10:59:32

标签: android gradle android-appcompat android-support-design

添加

后无法构建项目
compile 'com.android.support:design:24.2.0'

继续发出以下错误:

似乎,问题在于支持矢量绘图。在某处某些属性会被添加两次。

例如,内置的values.xml文件包含:

<declare-styleable name="AppBarLayout_LayoutParams"><attr name="layout_scrollFlags"><flag name="scroll" value="0x1"/><flag name="exitUntilCollapsed" value="0x2"/><flag name="enterAlways" value="0x4"/><flag name="enterAlwaysCollapsed" value="0x8"/></attr><attr format="reference" name="layout_scrollInterpolator"/></declare-styleable>

<declare-styleable name="AppBarLayout_Layout"><attr name="layout_scrollFlags">
        <flag name="scroll" value="0x1"/>
        <flag name="exitUntilCollapsed" value="0x2"/>
        <flag name="enterAlways" value="0x4"/> 
        <flag name="enterAlwaysCollapsed" value="0x8"/>
        <flag name="snap" value="0x10"/>

我已将此添加到gradle文件中:

compile 'com.android.support:cardview-v7:24.2.0' + '@aar'
compile 'com.android.support:recyclerview-v7:24.2.0' + '@aar'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0'

3 个答案:

答案 0 :(得分:4)

当应用程序中存在相同库的不同版本时,会出现问题。在这种情况下,支持库的版本不同。

如果您在gradle文件中没有看到它们,那么它们可能会被添加为依赖项。在终端中运行以下命令,以查看每个库的依赖项:

./gradlew app:dependencies

然后,找到使用旧版appcompat并更新/删除的库,无论你喜欢什么。

答案 1 :(得分:1)

您具有与其他控件相同的属性名称,并修改自定义控件的属性名称

<declare-styleable name="MyBgView">
        <attr name="textString" format="string" />
        <attr name="textSizes" format="dimension" />
        <attr name="triangleSize" format="dimension" />
        <attr name="backgrounds" format="color" />
        <attr name="textColors" format="color" />

答案 2 :(得分:0)

Android sdk无法避免扩展属性。使用父命名空间

<declare-styleable name="AppBarLayout_Layout" parent="AppBarLayout_LayoutParams">
    <attr name="layout_scrollFlags">
</declare-styleable>