使用android studio 0.3.1中的ActionbarSherlock进行编译错误

时间:2013-11-19 19:58:44

标签: android actionbarsherlock android-studio

我只是用android studio创建了一个新项目,并根据usage documentation for ActionbarSherlock在build.gradle中添加了两行。

我的build.gradle看起来像这样:

buildscript {
 repositories {
        mavenCentral()
 }
 dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
 }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 18
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
}

当我尝试编译时,我收到以下错误:

Compilation completed with 75 errors and 0 warnings in 14 sec
/Users/anthony/android/TestProject/Testqirc/build/exploded-
bundles/ComAndroidSupportAppcompatV71800.aar/res/values/values.xml
Gradle: Attribute "titleTextStyle" has already been defined
....
....
Gradle: Attribute "activityChooserViewStyle" has already been defined

dependencies更改为

   dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
   }

我收到此错误:

  

Gradle:检索项目的父项时出错:找不到任何资源   匹配给定名称'Theme.AppCompat.Light.DarkActionBar'。

5 个答案:

答案 0 :(得分:3)

另见Android 2.0 : Support Actionbar library (appcompat v7 support library without resources):No resource found @style/Theme.AppCompat.Light.DarkActionBar

关于使用ActionBarSherlock或AppCompat的评论是正确的;最好选择其中一个。如果您使用“新建项目向导”创建了项目,则会创建一个依赖于AppCompat的项目,如果要切换到ABS,则需要手动删除依赖项。 DarkActionBar是从src/main/res/layout/fragment_main.xml引用的。

答案 1 :(得分:0)

你应该删除这一行:

compile 'com.android.support:support-v4:18.0.+'

答案 2 :(得分:0)

确保删除styles.xml文件上项目创建时设置的默认Theme.AppCompat.Light.DarkActionBar父主题。

我的styles.xml以这样结束:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    </style>

</resources>

我的build.gradle:

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile "com.actionbarsherlock:actionbarsherlock:4.4.0@aar"
}

答案 3 :(得分:0)

我试图在Studio中导入和构建Ultimate Stopwatch示例时遇到了同样的问题(重复的属性)。部分工作是弄清楚(我第一次)如何将图书馆导入Studio(有点偏离主题 - 但有一个很好的醇厚视频演示了如何在Youtube中进行此操作(链接如下)。

我的底线 - 出于某种原因,我将以下两行添加到ActionBarSherlock库的build.gradle文件中:

dependencies {
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.android.support:support-v4:20.+'
}

原来看来,V7支持代码中已经有ActionBarSherlock的副本 - 所以你得到了重复。这对我有用 - 只需拔出V7支持:

dependencies {
    compile 'com.android.support:support-v4:20.+'
}

以下是向Studio添加库的过程的链接:

Youtube:如何通过Mohammed Isa将库添加到Android Studio

https://www.youtube.com/watch?v=1MyBO9z7ojk

干杯,Jim A

答案 4 :(得分:0)

只需更新到最新版本的播放服务和appcompat

https://stackoverflow.com/a/26588918/371749