ข้อผิดพลาดของทรัพยากรใน 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'.

ฉันอัปเดตเป้าหมายการสร้าง sdk ในไฟล์ gradle ของเราเป็น 23 ซึ่งทำให้ปัญหาเฉพาะนี้หมดไป แต่มันทำให้เรามี apache มากมายข้อผิดพลาดแพ็คเกจ http (โดยเฉพาะแพ็คเกจ apache จำนวนมากที่เราใช้สำหรับสิ่ง http หายไปแล้ว ใน sdk 23)

สิ่งที่ฉันต้องการทำคือแก้ไขข้อผิดพลาดทรัพยากรแปลก ๆ แต่ไม่มีการอัปเดตเป็น sdk 23 ฉันไม่มีเวลาเขียนไลบรารีเครื่องมือของเราใหม่ในตอนนี้เพื่อใช้ส่วนประกอบ apache http ใหม่ที่ออกมา ใครมีความคิดบ้างไหม?


คุณไม่ได้รับข้อผิดพลาดใน appcompat_v7 res / values-v23 / styles.xml เอง (แทนที่จะอยู่ในโครงการของคุณ)?
ปลอบใจ

1
ไม่แน่ใจว่าฉันเข้าใจคำถามของคุณหรือไม่ เราได้รับปัญหาในไฟล์ที่สร้างขึ้นตามที่ระบุโดยเส้นทางไฟล์ในข้อผิดพลาดที่โพสต์ไว้ด้านบน
James Dobson

หากข้อผิดพลาดเกิดขึ้นในไฟล์ที่สร้างขึ้นคุณต้องอัปเดตเครื่องมือสร้างในแบบ gradle เพื่อให้ตรงกับเวอร์ชันไลบรารี ie buildToolsVersion "23.0.1"
BK Batchelor

คำตอบ:


78

เปลี่ยนเวอร์ชัน appcompat ในไฟล์ build.gradle ของคุณกลับไปเป็น 22.2.1 (หรืออะไรก็ได้ที่คุณเคยใช้มาก่อน)


5
ขอบคุณนี่คือทางออก ฉันทำตามคำแนะนำที่นี่: code.google.com/p/android/issues/detail?id=183122#makechangesโดยเฉพาะซึ่งเป็นโซลูชันที่นำเสนอโดยสก็อต ฉันต้องลบ 23.0.0 ในโฟลเดอร์ sdk ของฉันลบเวอร์ชัน 23 sdk ในตัวจัดการ SDK จากนั้นทำการล้างและสร้างใหม่
James Dobson

4
เจมส์ขอบคุณสำหรับการแก้ปัญหา อย่างไรก็ตามฉันรู้สึกประหลาดใจกับสถานการณ์ PITA นี้ - เพราะฉันไม่เคยติดตั้ง appcompat-v7: 22.2.1 !!
ใครสักคน

มีวิธีทำใน Eclipse หรือไม่?
ปลอบใจ

10
@Solace Eclipse ไม่มีประโยชน์
Back Packer

6
@BackPacker ไม่ Android Studio คือปัญหา ฉันมีคอมพิวเตอร์ที่ดีและ Android Studio ใช้เวลาตลอดไปในการรวบรวมแอป hello world ที่เรียบง่าย
TheRealChx101

197

คุณต้องตั้งค่า compileSdkVersion เป็น 23

เนื่องจาก API 23 Android ได้ลบแพ็กเกจ 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
Jörn Buitink

4
เป็นคำตอบที่ดีอย่างแน่นอนและเห็นได้ชัดว่าเป็นแนวทางปฏิบัติที่ถูกต้องสำหรับคนส่วนใหญ่อย่างไรก็ตามมันไม่ตอบคำถามของฉันซึ่งเป็นการแก้ปัญหาโดยไม่ต้องอัปเดตเวอร์ชัน sdk การทำเช่นนั้นจะทำให้ห้องสมุดที่เราพึ่งพา แต่ไม่มีเวลาอัปเดตในขณะนั้น เราได้อัปเดตไลบรารีเพื่อใช้ประโยชน์จากคุณสมบัติใหม่และตอนนี้เราสามารถอัปเดตเป็น sdk 23 ได้อย่างปลอดภัย
James Dobson

@RobertoB. ขอบคุณนั่นเป็นข้อมูลที่ดี เราได้อัปเดต codebase ของเราเพื่อใช้ไลบรารี apache ใหม่แล้ว แต่หวังว่ามันจะช่วยคนอื่น ๆ ได้!
James Dobson

สิ่งนี้เกี่ยวข้องกับข้อความแสดงข้อผิดพลาดในรายงาน 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 ของฉัน: การอัปเดตทุกอย่างเป็นเวอร์ชันล่าสุดในทันทีที่มีคนบอกคุณไม่เหมาะสมเสมอไป คำถามนี้ตอบคำถามเดิมและแก้ไขปัญหาให้ฉันได้
Mark Smith

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

4

คุณควรเปลี่ยน compiledsdkversion และ targetversion เป็น 23 ในไฟล์ build gradle เฉพาะสำหรับแอพตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง sdk 23 เวอร์ชัน 6.0 ก่อนหน้านี้คุณสามารถดูวิดีโอนี้เพื่อขอความช่วยเหลือเพิ่มเติม https://www.youtube.com/watch?v=pw4jKsOU7go


2

หากคุณได้รับข้อผิดพลาดแม้ว่าจะดาวน์โหลด SDK และ Android Studio ใหม่ล่าสุดฉันก็เป็นมือใหม่สิ่งที่ฉันทำคือ 1. ดาวน์โหลด SDK ล่าสุด (ฉันคือ) 2. เปิดโครงสร้างไฟล์ - โครงการ (ctrl + alt + shift + S) 3. ในโมดูลเลือกแอป 4 ในแท็บคุณสมบัติ .. เปลี่ยนเวอร์ชันคอมไพล์ sdk เป็น api 23 Android 6.0 marshmallow (ล่าสุด)

ตรวจสอบให้แน่ใจว่าคอมไพล์เวอร์ชัน 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'.

ข้อผิดพลาดคุณต้องเปลี่ยนของคุณappcompat, buildtools, sdkไป23 แต่ถ้าคุณไม่ชอบที่จะเปลี่ยนมันและจะต้องอยู่ใน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 23 ดังนั้นฉันจึงติดตั้งก่อนแล้วจึงสร้างโครงการของฉันขึ้นมาใหม่ และมันก็ใช้ได้ดี compilesdkVersion ควรเป็น 23 ด้วย


0

ก่อนอื่น

ลองตรวจสอบโฟลเดอร์ SDK ของคุณสำหรับฉันมันเป็น mydocuments / appdata / sdk .... ฯลฯ โดยทั่วไปแล้วโฟลเดอร์ sdk ของฉันไม่ได้รับการดาวน์โหลดอย่างสมบูรณ์สาเหตุของปัญหานี้ส่วนใหญ่ คุณต้องใช้ android sdk อื่นที่ดาวน์โหลดมาอย่างสมบูรณ์ (รวมถึงส่วนเครื่องมือและส่วนเสริมที่คุณต้องการจริงๆ) หรือใช้ eclipse sdk ที่คุณอาจดาวน์โหลดมาก่อนหน้านี้สำหรับการพัฒนา Eclipse android ของคุณ จากนั้นสร้าง -> ทำความสะอาดโครงการของคุณอีกครั้ง

คุ้มค่าที่จะลอง


0

อัปเกรดเพื่อใช้ API 23 (Android 6.0) หรือเปลี่ยนกลับ appcompat-v7 เป็นเวอร์ชัน 22.2.2 ใน Gradle งานนี้สำหรับฉันเมื่อเพิ่มบริการ Google Play


0

วิธีที่ 1: กำลังแสดงคุณไม่ได้ติดตั้ง Api 23 ดังนั้นโปรดติดตั้ง API 23

วิธีที่ 2:

เปลี่ยนเวอร์ชัน appcompat ในไฟล์ build.gradle ของคุณกลับไปเป็น 22.0.1 (หรือน้อยกว่า)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.