【问题标题】:Lollipop AppCompat-v7 21 - Attribute "theme" has already been definedLollipop AppCompat-v7 21 - 属性“主题”已被定义
【发布时间】:2014-10-17 19:29:23
【问题描述】:

我想升级我的项目以支持 Android Lollipop 和 API 21,所以我将依赖项的 AppCompat 版本更改为 21.0.0, 我的目标 SDK 为 21。

但是现在,当我尝试将项目与 gradle 文件同步时,它给了我102 errors,这是以前没有的:

"Attribute 'theme' has already defined" 的 1 个错误 - 由我的 colors.XML 文件给出,

还有"no resources found that matches the given name..." 的另外 101 个错误 - 其中大部分是 Material 错误 - 由 "build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.XML" 给出。

已经更新了Android SDK软件中的所有SDK工具, 使用 Android Studio 0.8.9 Beta。

有人可以帮忙吗?谢谢。

【问题讨论】:

标签: android android-5.0-lollipop


【解决方案1】:

我也遇到了第一个问题。可以通过将 Google Play 服务依赖项更新到 6.1.+ 来修复它。

在 Gradle(我希望您正在使用)中,这是: 编译'com.google.android.gms:play-services:6.1.+'

至于第二个问题 - 正如人们在 cmets 中所说,您应该确保您的 SDK 安装中的所有组件都是最新的。

【讨论】:

  • 非常感谢!我更改了 Google Play Services 依赖项,它起作用了!
  • 我更新了所有组件,但我没有使用 GPlay 服务,但它仍然无法正常工作......您还有其他想法吗?编辑:更改了我所有其他依赖项,用“+”替换版本号,它可以工作。请注意,这只是一个临时修复
  • @tilal6991 对我来说,包括 cmets 在内的上述响应均无效。我什至尝试更改我的构建工具,但没有任何效果。嘻嘻!!!! :S
  • @SeïfaneIdouchach 检查它是否未在您的 attrs.xml 的其他任何地方定义,或在属性文件中定义 theme 的任何第三方依赖项。
  • 我遇到了非常相似的问题。通过将我的子模块更新到最新版本的 Google Play 服务、AppCompat 和支持库来解决这些问题。
【解决方案2】:

我遇到了同样的问题,但升级到最新版本没有帮助。

但是错误信息Attribute “theme” has already been defined改为Attribute “layout” has already been defined

在 Google Play 服务更改中我发现了这个

  <declare-styleable name="WalletFragmentOptions">
         <!-- Theme to be used for the Wallet selector -->
-        <attr name="theme" format="enum">
+        <attr name="appTheme" format="enum">

这是关键。

如果您的 attr.xml 属性中有 theme 或 layout 或其他东西 - 重命名它。看来合并处理不了了。

【讨论】:

    【解决方案3】:

    Android Studio 中的 Gradle 建议使用最新版本的 com.google.android.gms:play-services。 更新到最新版本后,问题就解决了。

    编译'com.google.android.gms:play-services:8.3.0'

    【讨论】:

      【解决方案4】:

      有时您使用的库具有此属性。我正在使用Sliding up panel 库,并且在构建期间出现以下错误。我的依赖库中有以下项目:

      dependencies {
          compile 'com.android.support:appcompat-v7:20.0.0'
          compile 'com.sothree.slidinguppanel:library:+'
          // ...
      }
      

      我通过删除滑动库解决了我的问题:(

      【讨论】:

      • SlidingUpPanel 中的这个问题现已修复。
      【解决方案5】:

      在我的项目中添加新活动后,Android Studio 似乎在开始出现该错误之后自动更新了我的依赖项。

      我将以下依赖项更改为最新的兼容性库:

      compile 'com.android.support:support-v4:21.0.3'
      compile 'com.android.support:appcompat-v7:21.0.3'
      

      对于我在我的 gradle.build 中的那些,在 Studio 编辑它之前没有问我:

      compile 'com.android.support:support-v4:20.0.0'
      compile 'com.android.support:appcompat-v7:20.0.0'
      

      然后让 Studio 进行同步,您的构建应该可以工作了。

      【讨论】:

        【解决方案6】:

        对于 Eclipse 用户:

        因为如果您按照安装 gps 的建议进行操作,您的工作区中只有它的副本,不会更新。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-24
          • 1970-01-01
          • 2014-12-20
          • 2015-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-20
          相关资源
          最近更新 更多