从 Eclipse 迁移到 AndroidStudio:属性已定义
Migrating from Eclipse to AndroidStudio: Attribute has already been defined
我目前正在尝试将我的 android 项目从 Eclipse 迁移到 Android Studio。构建项目失败并出现以下错误:
:app:processDebugResources
.../app/build/intermediates/res/merged/debug/values/values.xml
Error:(204) Attribute "divider" has already been defined
Error:(233) Attribute "color" has already been defined
这是来自 valuex.xml
的第 204 行
<declare-styleable name="MyView"><attr format="dimension" name="off"/><attr format="integer" name="host_mode"/><attr format="dimension" name="h_textSize"/><attr format="dimension" name="header_textSize"/><attr format="dimension" name="h_rx"/><attr format="dimension" name="h_ry"/><attr format="dimension" name="divider_height"/><attr format="color" name="divider"/><attr format="dimension" name="chat_divider_height"/><attr format="color" name="chat_divider"/><attr format="color" name="background_color"/><attr format="boolean" name="use_name"/></declare-styleable>
模块gradle文件:
dependencies {
compile 'com.android.support:support-v4:24.2.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.google.android.gms:play-services:+'
compile files('libs/alljoyn.jar')
compile files('libs/peergroupmanager.jar')
}
有谁知道问题出在哪里?
更新:
这是模块的完整 gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "23.0.3"
defaultConfig {
applicationId ""
minSdkVersion 16
targetSdkVersion 24
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:24.2.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.google.android.gms:play-services:+'
compile files('libs/alljoyn.jar')
compile files('libs/peergroupmanager.jar')
}
更新 2:
我根据 xhamr 更改了 gradle 文件。我现在收到一条不同的错误消息:
:app:processDebugResources
../app/build/intermediates/res/merged/debug/values/values.xml
Error:(204) Attribute "divider" already defined with incompatible
format. Error:(182) Original attribute defined here.
第 182 行:
<declare-styleable name="ActionBar"><attr name="navigationMode"><enum name="normal" value="0"/><enum name="listMode" value="1"/><enum name="tabMode" value="2"/></attr><attr name="displayOptions"><flag name="none" value="0"/><flag name="useLogo" value="0x1"/><flag name="showHome" value="0x2"/><flag name="homeAsUp" value="0x4"/><flag name="showTitle" value="0x8"/><flag name="showCustom" value="0x10"/><flag name="disableHome" value="0x20"/></attr><attr name="title"/><attr format="string" name="subtitle"/><attr format="reference" name="titleTextStyle"/><attr format="reference" name="subtitleTextStyle"/><attr format="reference" name="icon"/><attr format="reference" name="logo"/><attr format="reference" name="divider"/><attr format="reference" name="background"/><attr format="reference|color" name="backgroundStacked"/><attr format="reference|color" name="backgroundSplit"/><attr format="reference" name="customNavigationLayout"/><attr name="height"/><attr format="reference" name="homeLayout"/><attr format="reference" name="progressBarStyle"/><attr format="reference" name="indeterminateProgressStyle"/><attr format="dimension" name="progressBarPadding"/><attr name="homeAsUpIndicator"/><attr format="dimension" name="itemPadding"/><attr format="boolean" name="hideOnContentScroll"/><attr format="dimension" name="contentInsetStart"/><attr format="dimension" name="contentInsetEnd"/><attr format="dimension" name="contentInsetLeft"/><attr format="dimension" name="contentInsetRight"/><attr format="dimension" name="elevation"/><attr format="reference" name="popupTheme"/></declare-styleable>
您的目标是 SDK 24 并使用紧凑库 v24,请尝试将 compileSdkVersion 24
设置为
compileSdkVersion 24
buildToolsVersion '24.0.2'
useLibrary 'org.apache.http.legacy'
defaultConfig {
...
targetSdkVersion 24
...
}
确保您拥有来自 SDK 管理器的最新构建工具
编辑:
更新后,问题不在您的依赖项中,而是在您的 declare-styleable
中。 android 定义一个名为 divider
的属性,它与您的冲突,只需更改您的 divider
属性的名称:
<attr format="color" name="divider_color"/>
- 更新所有工具和SDK支持库。要执行此操作,请转到您的 Android Studio 并打开 SDK 管理器并安装更新。
- 然后重新启动您的 Android Studio
检查您的 buil.gradle 并根据最新版本更新以下代码行
buildToolsVersion“23.0.3”
targetSdkVersion 24
编译'com.android.support:support-v4:24.2.0'
同步项目
- 重建
我目前正在尝试将我的 android 项目从 Eclipse 迁移到 Android Studio。构建项目失败并出现以下错误:
:app:processDebugResources
.../app/build/intermediates/res/merged/debug/values/values.xml
Error:(204) Attribute "divider" has already been defined
Error:(233) Attribute "color" has already been defined
这是来自 valuex.xml
的第 204 行 <declare-styleable name="MyView"><attr format="dimension" name="off"/><attr format="integer" name="host_mode"/><attr format="dimension" name="h_textSize"/><attr format="dimension" name="header_textSize"/><attr format="dimension" name="h_rx"/><attr format="dimension" name="h_ry"/><attr format="dimension" name="divider_height"/><attr format="color" name="divider"/><attr format="dimension" name="chat_divider_height"/><attr format="color" name="chat_divider"/><attr format="color" name="background_color"/><attr format="boolean" name="use_name"/></declare-styleable>
模块gradle文件:
dependencies {
compile 'com.android.support:support-v4:24.2.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.google.android.gms:play-services:+'
compile files('libs/alljoyn.jar')
compile files('libs/peergroupmanager.jar')
}
有谁知道问题出在哪里?
更新: 这是模块的完整 gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "23.0.3"
defaultConfig {
applicationId ""
minSdkVersion 16
targetSdkVersion 24
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:24.2.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.google.android.gms:play-services:+'
compile files('libs/alljoyn.jar')
compile files('libs/peergroupmanager.jar')
}
更新 2: 我根据 xhamr 更改了 gradle 文件。我现在收到一条不同的错误消息:
:app:processDebugResources
../app/build/intermediates/res/merged/debug/values/values.xml
Error:(204) Attribute "divider" already defined with incompatible
format. Error:(182) Original attribute defined here.
第 182 行:
<declare-styleable name="ActionBar"><attr name="navigationMode"><enum name="normal" value="0"/><enum name="listMode" value="1"/><enum name="tabMode" value="2"/></attr><attr name="displayOptions"><flag name="none" value="0"/><flag name="useLogo" value="0x1"/><flag name="showHome" value="0x2"/><flag name="homeAsUp" value="0x4"/><flag name="showTitle" value="0x8"/><flag name="showCustom" value="0x10"/><flag name="disableHome" value="0x20"/></attr><attr name="title"/><attr format="string" name="subtitle"/><attr format="reference" name="titleTextStyle"/><attr format="reference" name="subtitleTextStyle"/><attr format="reference" name="icon"/><attr format="reference" name="logo"/><attr format="reference" name="divider"/><attr format="reference" name="background"/><attr format="reference|color" name="backgroundStacked"/><attr format="reference|color" name="backgroundSplit"/><attr format="reference" name="customNavigationLayout"/><attr name="height"/><attr format="reference" name="homeLayout"/><attr format="reference" name="progressBarStyle"/><attr format="reference" name="indeterminateProgressStyle"/><attr format="dimension" name="progressBarPadding"/><attr name="homeAsUpIndicator"/><attr format="dimension" name="itemPadding"/><attr format="boolean" name="hideOnContentScroll"/><attr format="dimension" name="contentInsetStart"/><attr format="dimension" name="contentInsetEnd"/><attr format="dimension" name="contentInsetLeft"/><attr format="dimension" name="contentInsetRight"/><attr format="dimension" name="elevation"/><attr format="reference" name="popupTheme"/></declare-styleable>
您的目标是 SDK 24 并使用紧凑库 v24,请尝试将 compileSdkVersion 24
设置为
compileSdkVersion 24
buildToolsVersion '24.0.2'
useLibrary 'org.apache.http.legacy'
defaultConfig {
...
targetSdkVersion 24
...
}
确保您拥有来自 SDK 管理器的最新构建工具
编辑:
更新后,问题不在您的依赖项中,而是在您的 declare-styleable
中。 android 定义一个名为 divider
的属性,它与您的冲突,只需更改您的 divider
属性的名称:
<attr format="color" name="divider_color"/>
- 更新所有工具和SDK支持库。要执行此操作,请转到您的 Android Studio 并打开 SDK 管理器并安装更新。
- 然后重新启动您的 Android Studio
检查您的 buil.gradle 并根据最新版本更新以下代码行
buildToolsVersion“23.0.3”
targetSdkVersion 24
编译'com.android.support:support-v4:24.2.0'
同步项目
- 重建