【问题标题】:resource error in android studio after update: No Resource Found更新后android studio中的资源错误:未找到资源
【发布时间】:2015-11-12 13:50:14
【问题描述】:

在最近对 Android Studio 进行更新后,我们在编译以前工作的项目时遇到了问题。起初我们收到以下错误:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

我将 gradle 文件中的 sdk 构建目标更新为 23,这使得这个特定问题消失了,但它给我们留下了大量 apache.http 包错误(特别是,我们用于 http 东西的大量 apache 包现在在 sdk 23 中消失了)。

我想做的是解决奇怪的资源错误,但没有更新到 sdk 23。我现在没有时间重新编写我们的工具库来使用任何新的 apache http 组件实现已发布.有人有什么想法吗?

【问题讨论】:

  • 您在 appcompat_v7 res/values-v23/styles.xml 本身(而不是您的项目)中没有收到错误吗?
  • 不确定我是否理解您的问题?我们在生成的文件中遇到了问题,如上面发布的错误中的文件路径所示。
  • 如果生成的文件中出现错误,那么您必须在 gradle 中更新构建工具以匹配库版本。即 buildToolsVersion "23.0.1"

标签: java android apache


【解决方案1】:

您需要将 compileSdkVersion 设置为 23。

由于 API 23 Android 删除了已弃用的 Apache Http 包,因此如果您将它们用于服务器请求,则需要将 useLibrary 'org.apache.http.legacy' 添加到 build.gradle,如 this 链接中所述:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

【讨论】:

  • 这将起作用,但您需要确保安装新的 SDK 版本。 API 23(Android 6.0 平台)。这将允许您支持更新的设备。这就是为什么当您将“appcompat 版本”更改为较新的版本时,它将需要较新的 SDK 版本。
  • 这个答案比回到22.2.1好很多
  • 这当然是一个理想的答案,对大多数人来说显然是正确的做法,但是,它并没有回答我的问题,即在不更新 sdk 版本的情况下解决问题。这样做会破坏我们依赖但当时没有时间更新的库。我们已经更新了库以利用新功能,现在我们可以安全地更新到 sdk 23。
  • @RobertoB。谢谢,这是很好的信息。我们已经更新了我们的代码库以使用新的 apache 库,但希望它能对其他人有所帮助!
  • 这与 OP 报告的错误消息有什么关系?我认为 compileSdkVersion 是一种有效的解决方法,但使用旧的 apache 库只是一个间接要求。
【解决方案2】:

将 build.gradle 文件中的 appcompat 版本改回 22.2.1(或之前使用的任何版本)。

【讨论】:

  • 谢谢,这就是解决方案。我按照这里的说明进行操作:code.google.com/p/android/issues/detail?id=183122#makechanges 特别是 scott 提供的解决方案。我必须在我的 sdk 文件夹中删除 23.0.0,在 SDK 管理器中删除版本 23 sdk,然后进行清理和重建
  • 詹姆斯,感谢您的解决方案。然而,我对这种 PITA 情况感到非常震惊——因为我从来没有安装过 appcompat-v7:22.2.1 !!
  • 有没有办法在 Eclipse 中做到这一点?
  • @Solace Eclipse 没用
  • @BackPacker No. Android Studio 是问题所在。我有一台好电脑,Android Studio 需要很长时间才能编译一个简单的 hello world 应用程序。
【解决方案3】:

在您的项目 build.gradle 文件中... 写如下.. 我已通过将 appcompat 版本从 v7.23.0.0 更改为 v7.22.2.1..

解决了该错误
dependencies

{

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'

}

【讨论】:

  • 不不不....我没想到会这样!但这行得通!那么更新到 23.0.1 有什么意义呢?
  • 这个得到了我的 +1:立即有人告诉你更新到最新版本并不总是合适的。这个回答了最初的问题,并为我解决了问题。
【解决方案4】:

注意,错误答案来了! 但是任何没有 apache 库的人都可能会发现

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

有用,对我有用。

【讨论】:

  • 为什么 apache 库有这么大的问题?
【解决方案5】:

您应该在特定于应用程序的构建 gradle 文件中将您的compiledsdkversion 和targetversion 更改为23。确保您在此之前安装了sdk 23,版本6.0。您可以观看此视频以获取更多帮助。https://www.youtube.com/watch?v=pw4jKsOU7go

【讨论】:

    【解决方案6】:

    如果您在下载最新的 SDK 和 Android Studio 后仍然出现错误,我是新手:我所做的是 1. 下载最新的 SDK(我是) 2.打开文件-项目结构(ctrl+alt+shift+S ) 3. 在模块中选择应用程序 4.在属性选项卡中..将编译 sdk 版本更改为 api 23 Android 6.0 marshmallow(latest)

    确保编译 adk 版本和 buildtools 版本相同(23)

    希望它可以帮助某人,这样他就不会像我这几天那样受苦。

    【讨论】:

      【解决方案7】:

      尝试匹配所有版本:

      compileSdkVersion 23
      buildToolsVersion '23.0.0'
      targetSdkVersion 23
      compile 'com.android.support:appcompat-v7:23.0.0'
      

      这对我有用。

      【讨论】:

        【解决方案8】:

        compileSDK 应该匹配 appCompat 版本。 TargetSDK 仍然可以是 22(例如,如果您还没有更新到新的权限模型)

        【讨论】:

          【解决方案9】:

          如果你有:

          /Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
          Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
          Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
          

          错误,您必须将您的 appcompat 、 buildtools 、 sdk 更改为 23 但是,如果您不喜欢更改它并且必须在 22 这样做:

          • 编译23
          • 目标22

          【讨论】:

            【解决方案10】:

            只有将 build.grade 更改为它时才有效:

            android {
                compileSdkVersion 22
                buildToolsVersion "22.0.1"
            
                defaultConfig {
                    applicationId "blablabla"
                    minSdkVersion 15
                    targetSdkVersion 22
                    versionCode 1
                    versionName "1.0"
                }
                buildTypes {
                    release {
                        minifyEnabled false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    }
                }
            }
            
            dependencies {
                compile fileTree(dir: 'libs', include: ['*.jar'])
                compile 'com.android.support:appcompat-v7:22.0.0'
            }
            

            【讨论】:

              【解决方案11】:

              我注意到我没有安装 sdk 23。所以我首先安装了它,然后重新构建了我的项目。而且效果很好。 compilesdkVersion 也应该是 23

              【讨论】:

                【解决方案12】:

                首先,

                尝试检查你的SDK文件夹,对我来说,它是mydocuments/appdata/sdk....等。所以基本上我的sdk文件夹没有完全下载,主要是这个问题的根源。您必须使用另一个完全下载的 android sdk(包括您真正需要的工具部分和附加功能)或使用您之前为 Eclipse android 开发下载的 eclipse sdk。然后再次构建->清理您的项目。

                值得一试。

                【讨论】:

                  【解决方案13】:

                  升级以使用 API 23 (Android 6.0) 或在 Gradle 中将 appcompat-v7 改回 22.2.2 版本。添加谷歌播放服务时这对我有用

                  【讨论】:

                    【解决方案14】:

                    方法一: 它正在显示。您没有安装 Api 23。 所以请安装 API 23。

                    方法二:

                    将 build.gradle 文件中的 appcompat 版本改回 22.0.1(或更低)。

                    【讨论】:

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