更新后android studio中出现资源错误:找不到资源


101

在最近对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中)。

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


您是否在appcompat_v7 res / values-v23 / styles.xml本身(而不是在项目中)中得到错误?
安慰

1
不确定我了解您的问题吗?我们在生成的文件中遇到了问题,如上面发布的错误中的文件路径所指示。
James Dobson

如果在生成的文件中发生错误,则必须在gradle中更新构建工具以匹配库版本。即buildToolsVersion“ 23.0.1”
BK Batchelor

Answers:


78

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


5
谢谢,这是解决方案。我按照此处的说明进行操作:code.google.com/p/android/issues/detail?id=183122#makechanges,这是scott提供的解决方案。我必须在我的sdk文件夹中删除23.0.0,在SDK管理器中删除版本23 sdk,然后进行清理和重建
James Dobson 2015年

4
詹姆斯,谢谢您的解决方案。但是,我对这种PITA情况感到震惊,因为我从未安装过appcompat-v7:22.2.1!
某处某人

在Eclipse中有没有办法做到这一点?
安慰

10
@Solace Eclipse没用
Back Packer

6
@BackPacker否。AndroidStudio是问题所在。我有一台好的计算机,Android Studio会花很多时间来编译一个简单的hello world应用程序。
TheRealChx101

197

您需要将compileSdkVersion设置为23。

由于Android的API 23删除了已弃用的Apache Http软件包,因此,如果将它们用于服务器请求,则需要useLibrary 'org.apache.http.legacy'按照以下链接中的说明添加到build.gradle :

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

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

1
这将起作用,但是您需要确保安装新的SDK版本。API 23(Android 6.0平台)。这将允许您支持较新的设备。因此,当您将“ appcompat版本”更改为较新版本时,将需要较新的SDK版本。
JamesDeHart

4
这个答案是明显优于回去22.2.1
乔恩Buitink

4
这当然是一个理想的答案,并且显然是大多数人的正确做法,但是,它不能回答我的问题,即不更新sdk版本即可解决该问题。这样做会破坏我们依赖的库,但当时没有时间更新。我们自更新图书馆使用的新功能,我们现在可以安全地更新到SDK 23
詹姆斯·多布森

@RobertoB。谢谢,那是很好的信息。我们已经更新了代码库,以使用新的apache库,但希望它将对其他人有所帮助!
詹姆斯·多布森

这与OP报告的错误消息有何关系?我认为compileSdkVersion是一个有效的解决方法,但是使用旧版apache库只是间接要求。
mdelolmo

21

在您的项目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'

}

下面的屏幕截图是为了更好地理解。


1
不,不,不。。。我没想到!但是这个工作了!然后将其更新为23.0.1有什么意义?
sud007

这使我获得+1:总是立即将某人告诉您的所有内容更新为最新版本并不总是合适的。这回答了原始问题,并为我解决了该问题。
马克·史密斯

10

注意,错误答案来了!但是任何没有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库有这样的问题?
NinjaCoder 2015年


2

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

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

希望它能对某人有所帮助,以使他在这几天中不会像我那样遭受痛苦。



1

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


1

如果你有 :

/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'.

错误,你必须改变你appcompatbuildtoolssdk23 ,但是,如果你不喜欢改变它,必须在22 做到这一点:

  • 编译23
  • 目标22

0

仅当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'
}


0

首先,

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

值得尝试。


0

升级以使用API​​ 23(Android 6.0)或在Gradle中将appcompat-v7更改回22.2.2版本。添加Google Play服务时对我有用


0

方法1:正在显示。您没有安装Api23。因此,请安装API 23。

方法2:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.