ไม่พบทรัพยากร - Theme.AppCompat.Light.DarkActionBar


145

ฉันใช้ ActionBar Style Generator และตอนนี้พยายามใช้กับแอพของฉัน แต่ได้รับ:

ข้อผิดพลาด: เกิดข้อผิดพลาดในการดึงข้อมูลพาเรนต์สำหรับรายการ: ไม่พบทรัพยากรที่ตรงกับชื่อที่ระบุ '@ style / Theme.AppCompat.Light.DarkActionBar'

ฉันใช้android-support-v7-appcompat.jar lib ภายในโฟลเดอร์ libs

เป้าหมายของฉันคือทำให้แอปของฉันใช้ร่วมกันได้ 2.3 ขึ้นไป


คุณเพิ่ม jar ในโฟลเดอร์ libs หรือไม่
Raghunandan

ใช่หุ่นยนต์สนับสนุน v7-appcompat.jar
อาทิตย์

คำตอบ:


96

AppCompatเป็นโครงการห้องสมุด คุณต้องอ้างอิงโครงการห้องสมุดในโครงการ Android ของคุณ

ตรวจสอบหัวข้อการเพิ่มห้องสมุดมีทรัพยากร


1
วางแล้วหุ่นยนต์สนับสนุน v7-appcompat.jar เพื่อ libs โฟลเดอร์
อาทิตย์

4
@ AbrahimNeil นั่นไม่ใช่วิธีที่ถูกต้อง มันเป็นโครงการห้องสมุดและด้วยเหตุนี้จึงต้องมีการอ้างอิงเช่นเดียวกับบริการ Google Play
Raghunandan

เมื่อฉันนำเข้า android-support-v7-appcompat.jar การรับไม่สามารถแก้ไขเป้าหมาย android-16 ได้หรือไม่
อาทิตย์


1
การเพิ่มการ implementation 'com.android.support:appcompat-v7:28.0.0'พึ่งพาภายใต้การแก้ไขปัญหาของฉัน
Hilal

35

หากคุณกำลังใช้Eclipseให้เพิ่มreference libraryเข้าไปในโครงการของคุณเป็นขั้นตอนต่อไปนี้:

  1. คลิกขวาที่โครงการของคุณในProject Explorerมุมมอง
  2. Propertiesคลิก
  3. คลิกAndroidที่Propertiesหน้าต่าง
  4. ในLibraryกลุ่มให้คลิกAdd...
    • ดูภาพด้านล่าง
  5. เลือกห้องสมุด คลิก OK
  6. คลิกที่OKปุ่มอีกครั้งในหน้าต่างคุณสมบัติ

ปุ่ม "เพิ่ม" ในหน้าต่างคุณสมบัติโครงการส่วน Android กลุ่มไลบรารี


4
คุณรู้ได้อย่างไร op กำลังใช้ eclipse ไม่ใช่ android studio? snap ที่โพสต์นั้นมีไว้สำหรับ eclipse
Raghunandan

@ Raghunandan ขอโทษที่ลืมพูดถึงมัน
MD

1
ทำงานได้อย่างสมบูรณ์แบบใน Eclipse ขอบคุณ!
Scott Biggs

33

หากคุณใช้Android Studio ให้เพิ่มการพึ่งพา

dependencies {
     implementation 'com.android.support:appcompat-v7:25.0.1'
}

app/build.gradleไปยัง และนั่นจะทำงาน


2
อืม ... มันใช้งานไม่ได้ ... แต่ก็ยังไม่สามารถแก้ไข android: Theme.AppCompat. * ในไฟล์ styles.xml ของฉัน
Michael

ฉันเพิ่งแทนที่การใช้งาน 'com.android.support:appcompat-v7:28.0.0' โดยการนำไปใช้ 'com.android.support:appcompat-v7:25.0.1' และตอนนี้มันใช้งานได้ ... แต่ทำไม?
CGR

1
@CGR ฉันเชื่อว่า Android เปลี่ยนธีมสำหรับ 28+ และ Light.DarkActionBar ไม่สามารถใช้ได้อีกต่อไป
DoomGoober

13

สำหรับใครก็ตามที่ใช้ VS2015 ฉันได้รับข้อผิดพลาดนี้ด้วยและปรากฎว่าฉันไม่ได้เพิ่มห้องสมุดเข้ากับโครงการ ...

Install-Package Xamarin.Android.Support.v7.AppCompat

1
ฉันได้รับสิ่งนี้หลังจากเริ่มโครงการใหม่ใน VS2019 และสร้างมัน เพียงทำ "สร้างโซลูชันใหม่" โดยไม่ต้องติดตั้งสิ่งอื่นเพื่อแก้ไขข้อผิดพลาด
เกลน Little


7

ทางออกที่ง่าย - แทนที่เนื้อหาไฟล์นี้ (/res/values/styles.xml) เป็นข้อความ:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>


1
"ข้อผิดพลาดในการดึงข้อมูลพาเรนต์สำหรับรายการ: ไม่พบทรัพยากรที่ตรงกับชื่อที่ระบุ 'AppBaseTheme'"
Yousha Aleayoub

1
นี้ไม่ได้เป็นAppCompat
IgorGanapolsky


4

ในกรณีของฉันฉันเอาandroidโครงการจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งและมีปัญหานี้ สิ่งที่ใช้ได้ผลสำหรับฉันคือการรวมกันของคำตอบบางส่วนที่ฉันเคยเห็น:

  • ลบสำเนาของไลบรารี appcompat ที่อยู่ในโฟลเดอร์ libs ของเวิร์กสเปซ
  • ติดตั้ง sdk 21
  • เปลี่ยนคุณสมบัติโปรเจ็กต์เพื่อใช้ sdk build ป้อนคำอธิบายรูปภาพที่นี่
  • ตั้งค่าและเริ่มโปรแกรมจำลองที่เข้ากันได้กับ sdks 21
  • อัปเดต Run Configuration เพื่อแจ้งให้อุปกรณ์ทำงานและเลือก Run

ฉันวิ่งได้ดีหลังจากทำตามขั้นตอนเหล่านี้


3

การใช้ Visual Studio 2015 (Windows7) + Xamarin มีข้อผิดพลาดนี้และหลังจากลองหลายสิ่ง (ติดตั้งแพคเกจดาวน์โหลด android_m2repository_r10.zip ... ) สิ้นสุดการลบโฟลเดอร์ Xamarinแบบเต็มภายใน

C:\Users\<my user>\AppData\Local

หลังจากนั้นสร้างแอปพลิเคชันใหม่ใน VS และข้อผิดพลาดหายไป


สิ่งนี้ใช้ได้กับฉัน :) หมายเหตุ: การใช้ Visual Studio Enterprise 2017 15.8 แสดงตัวอย่าง 3.0
David Jones

ทำงานให้ฉันเช่นกันโดยใช้ VS 2017
Richard Lyle

3

ตรวจสอบให้แน่ใจว่ามีไดเรกทอรี v7 ใน sdk ของคุณฉันคิดว่าการมี 'Android Support Library' (ใน Extras) นั้นเพียงพอแล้ว ปรากฎว่าฉันหายไปจาก 'Local Maven repository สำหรับ Support Libraries (extras; android; m2repository)' สตูดิโอพบว่าจริง ๆ แล้วแก้ไขการพึ่งพาแบบไล่ระดับ ใช้ gradle สร้างแล้วทำงาน $ cat app / build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "pat.example.com.gdbdemo"
        minSdkVersion 15
        targetSdkVersion 23
        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:23.2.1'
}


2

หากคุณใช้ Android.mk ในการสร้างให้ใช้ USE_AAPT2 ซึ่งลิงก์ในทรัพยากรที่สร้างขึ้นจาก AAR

เพิ่มบรรทัดด้านล่างในไฟล์ Android.mk:

LOCAL_USE_AAPT2: = จริง


1
  1. อัปเดต SDK ของคุณในผู้จัดการและอย่าลืมรวมAndroid support libraryไว้ในรายการพิเศษ
  2. ไปที่ SDK ใน File explorer (Finder บน mac) ติดตามโฟลเดอร์พิเศษ ( ..\sdk\extras\android\support\v7\appcompat\res\valuesบน Windows) บางแห่งในนั้นมีthemes.xmlและ themes_base.xmlและคัดลอกไฟล์เหล่านี้ทั้งสอง
  3. ในโครงการของคุณวางไฟล์ลงในไดเรกทอรี 'values'

การคัดลอก themes_base.xml ไปยัง res / values ​​แก้ไขปัญหาเดิม แต่ส่งผลให้มีการอ้างอิงที่ไม่ได้แก้ไขอื่น ๆ
FractalBob

1

หากคุณใช้Visual Studio สำหรับ MACให้แก้ไขปัญหาการคลิกที่โครงการ> การกู้คืนแพคเกจ Nutget


0

ใน Eclipse: เมื่อนำเข้าห้องสมุดการสนับสนุนเป็นห้องสมุดโครงการทำตามคำแนะนำในการเพิ่มการสนับสนุนห้องสมุด , ไม่ลืมที่จะตรวจสอบตัวเลือก "คัดลอก proyects เข้าไปในพื้นที่ทำงาน" !


0

ฉันมีปัญหาเดียวกันนี้ การแก้ปัญหาที่ระบุไว้ในที่นี้ไม่ช่วยสถานการณ์ของฉัน ตามที่ปรากฎฉันกำลังนำเข้าโฟลเดอร์พาเรนต์สำหรับโครงการไปยัง Android Studio 1.5 แทนที่จะเป็นโฟลเดอร์โครงการ สิ่งนี้ทำให้ Gradel กลายเป็นเรื่องเหลวไหล วิธีแก้ไขคือการนำเข้าโฟลเดอร์โครงการแทน


-1

ใน xamarin ถ้าคุณประสบปัญหานี้เมื่อคุณเพิ่ม sdk ใหม่ ทางออกที่ง่ายคือเปิดไฟล์สไตล์ของคุณและเพิ่มบรรทัดนี้

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

มันเป็นทางออกที่ดีกว่าการเพิ่ม appcompat

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