【问题标题】:Compilation Errors using ActionbarSherlock in android studio 0.3.1在 android studio 0.3.1 中使用 ActionbarSherlock 的编译错误
【发布时间】:2013-11-19 19:58:44
【问题描述】:

我只是用 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”。

【问题讨论】:

  • 您应该使用 ABS 或 appcompat。关于最后一个错误 - 看起来你从 appcompat 扩展了一些主题,或者尝试干净重新构建

标签: android actionbarsherlock android-studio


【解决方案1】:

另见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

【讨论】:

    【解决方案2】:

    你应该删除这一行:

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

    【讨论】:

      【解决方案3】:

      确保删除在您的 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"
      }
      

      【讨论】:

        【解决方案4】:

        我在尝试将 Ultimate Stopwatch 示例导入并在 Studio 中构建时遇到了同样的问题(重复的属性)。部分工作是(我第一次)弄清楚如何将库导入 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

        干杯,吉姆 A

        【讨论】:

        • 哦,还有一件事 - 您必须保留 V4 兼容行,因为 ActionBarSherlock 库显然在名为“Watson.java”的文件(这里是双关语)中扩展了 FragmentActivity 的 V4 版本。干杯,
        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-19
          • 1970-01-01
          • 2021-02-11
          • 1970-01-01
          • 1970-01-01
          • 2013-05-11
          • 2013-05-16
          相关资源
          最近更新 更多