lỗi tài nguyên trong studio android sau khi cập nhật: Không tìm thấy tài nguyên


101

Sau bản cập nhật gần đây cho Android Studio, chúng tôi đang gặp sự cố khi nhận được một dự án biên dịch đã hoạt động trước đó. Lúc đầu, chúng tôi gặp lỗi sau:

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

Tôi đã cập nhật mục tiêu xây dựng sdk trong tệp gradle của chúng tôi lên 23, điều này đã làm cho vấn đề cụ thể này biến mất, nhưng nó để lại cho chúng tôi rất nhiều lỗi gói apache.http (cụ thể là hàng tấn gói apache mà chúng tôi sử dụng cho nội dung http hiện đã biến mất trong sdk 23).

Những gì tôi muốn làm là giải quyết lỗi tài nguyên lạ, nhưng không cập nhật lên sdk 23. Tôi không có thời gian để viết lại thư viện công cụ của chúng tôi ngay bây giờ để sử dụng bất kỳ triển khai mới nào của các thành phần apache http đã được phát hành. Có ai có ý tưởng nào?


Bạn không gặp lỗi trong chính appcompat_v7 res / values-v23 / styles.xml (chứ không phải trong dự án của bạn)?
Solace

1
Không chắc tôi hiểu câu hỏi của bạn? Chúng tôi đã gặp sự cố trong một tệp được tạo như được chỉ ra bởi đường dẫn tệp trong lỗi được đăng ở trên.
James Dobson

Nếu lỗi xảy ra trong các tệp được tạo, thì bạn phải cập nhật các công cụ xây dựng, theo gradle, để phù hợp với phiên bản thư viện. tức là buildToolsVersion "23.0.1"
BK

Câu trả lời:


78

Thay đổi phiên bản appcompat trong tệp build.gradle của bạn trở lại 22.2.1 (hoặc bất kỳ phiên bản nào bạn đã sử dụng trước đây).


5
Cảm ơn, đây là giải pháp. Tôi đã làm theo hướng dẫn cụ thể tại đây: code.google.com/p/android/issues/detail?id=183122#makechanges , giải pháp do scott cung cấp. Tôi đã phải xóa 23.0.0 trong thư mục sdk của tôi, xóa các sdk phiên bản 23 trong bộ quản lý SDK và sau đó làm sạch & xây dựng lại
James Dobson

4
James, cảm ơn vì giải pháp. Tuy nhiên, tôi thực sự ngạc nhiên với tình huống PITA này - bởi vì tôi chưa bao giờ cài đặt appcompat-v7: 22.2.1 !!
Ai đó ở đâu đó vào

Có cách nào để làm điều đó trong Eclipse không?
Solace

10
@Solace Eclipse là vô ích
Trở lại Packer

6
@BackPacker Không. Android Studio là vấn đề. Tôi có một chiếc máy tính tốt và Android Studio mất nhiều thời gian để biên dịch một ứng dụng hello world đơn giản.
TheRealChx101

197

Bạn cần đặt compileSdkVersion thành 23.

Vì API 23 Android đã xóa các gói Apache Http không được dùng nữa, vì vậy nếu bạn sử dụng chúng cho các yêu cầu máy chủ, bạn sẽ cần thêm useLibrary 'org.apache.http.legacy'vào build.gradle như đã nêu trong liên kết này :

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

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

1
Điều này sẽ hiệu quả nhưng bạn cần đảm bảo cài đặt Phiên bản SDK mới. API 23 (Nền tảng Android 6.0). Điều này sẽ cho phép bạn hỗ trợ các thiết bị mới hơn. Đó là lý do tại sao khi bạn thay đổi "phiên bản appcompat" thành phiên bản mới hơn, nó sẽ yêu cầu phiên bản SDK mới hơn.
JamesDeHart

4
Câu trả lời này là tốt hơn nhiều so với quay trở lại 22.2.1
Jörn Buitink

4
Đó chắc chắn là một câu trả lời lý tưởng và rõ ràng là hướng hành động chính xác cho hầu hết mọi người, tuy nhiên, nó không trả lời câu hỏi của tôi là giải quyết vấn đề mà không cập nhật phiên bản sdk. Làm như vậy sẽ phá vỡ một thư viện mà chúng tôi phụ thuộc vào nhưng không có thời gian để cập nhật vào thời điểm đó. Chúng tôi đã kể từ khi cập nhật thư viện để tận dụng các tính năng mới và bây giờ chúng tôi có thể cập nhật một cách an toàn để SDK 23.
James Dobson

@RobertoB. Cảm ơn, đó là thông tin tốt. Chúng tôi đã cập nhật cơ sở mã của mình để sử dụng các thư viện apache mới, nhưng hy vọng nó sẽ giúp ích cho những người khác!
James Dobson

Điều này liên quan như thế nào đến các thông báo lỗi mà OP báo cáo? Tôi nghĩ rằng compileSdkVersion là một giải pháp thay thế hợp lệ, nhưng việc sử dụng thư viện apache kế thừa chỉ là một yêu cầu gián tiếp.
mdelolmo

21

trong tệp build.gradle dự án của bạn ... viết như bên dưới .. tôi đã giải quyết lỗi đó bằng cách thay đổi phiên bản appcompat từ v7.23.0.0 sang v7.22.2.1 ..

dependencies

{

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

}

Ảnh chụp màn hình dưới đây là để hiểu rõ hơn.


1
Không KHÔNG Không .... Tôi không mong đợi điều này! NHƯNG ĐIỀU NÀY ĐÃ THÀNH CÔNG !! Sau đó, cập nhật nó lên 23.0.1 có ích gì?
sud007 21/09

Cái này nhận được +1 của tôi: không phải lúc nào cũng thích hợp chỉ cần cập nhật lên phiên bản mới nhất của mọi thứ ngay lập tức mà ai đó yêu cầu bạn. Cái này trả lời câu hỏi ban đầu và khắc phục sự cố cho tôi.
Mark Smith,

10

Chú ý, câu trả lời sai sắp đến! Nhưng bất kỳ ai không có thư viện apache hoặc tương tự có thể tìm thấy

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


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

}

hữu ích, nó đã làm thủ thuật cho tôi.


Tại sao nó có vấn đề với các thư viện apache?
NinjaCoder

4

bạn nên thay đổi chuyển đổi đã biên dịch và chuyển đổi mục tiêu của mình thành 23 trong tệp gradle xây dựng dành riêng cho ứng dụng. Hãy đảm bảo rằng bạn đã cài đặt sdk 23, phiên bản 6.0 trước đó. Bạn có thể xem vid này để được trợ giúp thêm. https://www.youtube.com/watch?v=pw4jKsOU7go


2

nếu bạn gặp lỗi ngay cả khi tải xuống SDK mới nhất và Android Studio Tôi là người mới: Điều tôi đã làm là 1. Tải xuống SDK gần đây (tôi là) 2.Mở cấu trúc tệp-Dự án (ctrl + alt + shift + S) 3. Trong mô-đun, chọn ứng dụng 4. trong tab thuộc tính..thay đổi phiên bản biên dịch sdk sang api 23 Android 6.0 marshmallow (mới nhất)

đảm bảo biên dịch phiên bản adk và các công cụ xây dựng có cùng phiên bản (23)

Hy vọng nó sẽ giúp ai đó để anh ta không phải chịu đựng như tôi đã làm trong vài ngày nay.


2

Cố gắng khớp với tất cả các phiên bản:

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

Nó làm việc cho tôi.


1

compileSDK phải khớp với phiên bản appCompat. TargetSDK vẫn có thể là 22 (ví dụ: trong trường hợp bạn chưa cập nhật lên mô hình quyền mới)


1

nếu bạn có :

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

lỗi, bạn phải thay đổi của bạn appcompat, buildtools, sdkđể 23 nhưng, nếu bạn không thích để thay đổi nó và phải nằm trong 22 làm điều này:

  • biên dịch 23
  • mục tiêu 22

0

Nó hoạt động ngay khi build.grade được thay đổi thành:

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

Tôi nhận thấy tôi chưa cài đặt sdk 23. Vì vậy, lần đầu tiên tôi cài đặt nó sau đó xây dựng lại dự án của mình. Và nó hoạt động tốt. Ngoài ra, dkVersion phải là 23


0

Đầu tiên,

Hãy thử kiểm tra thư mục SDK của bạn, đối với tôi, đó là mydocuments / appdata / sdk .... vv Vì vậy, về cơ bản thư mục sdk của tôi không được tải xuống đầy đủ, nguồn gốc của vấn đề này chủ yếu. Bạn phải sử dụng một sdk android được tải xuống đầy đủ khác (bao gồm phần Công cụ và các tính năng bổ sung mà bạn thực sự cần) hoặc sử dụng sdk eclipse mà bạn có thể tải xuống trước đó cho các phát triển Android Eclipse của mình. Sau đó xây dựng-> làm sạch dự án của bạn một lần nữa.

Đang để thử.


0

Nâng cấp để sử dụng API 23 (Android 6.0) hoặc thay đổi lại appcompat-v7 thành phiên bản 22.2.2 trong Gradle. Điều này làm việc cho tôi khi thêm dịch vụ google play


0

Phương pháp 1: Nó đang hiển thị. Bạn đã không cài đặt Api 23. Vì vậy, hãy cài đặt API 23.

Phương pháp 2:

Thay đổi phiên bản appcompat trong tệp build.gradle của bạn về 22.0.1 (hoặc thấp hơn).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.