Không tìm thấy tài nguyên - Theme.AppCompat.Light.DarkActionBar


145

Tôi đã sử dụng Trình tạo kiểu ActionBar và hiện đang cố gắng sử dụng vào ứng dụng của mình, nhưng nhận được:

lỗi: Lỗi khi truy xuất cha mẹ cho mục: Không tìm thấy tài nguyên phù hợp với tên đã cho '@ style / Theme.AppCompat.Light.DarkActionBar'.

tôi đang sử dụng android-support-v7-appcompat.jar lib trong thư mục libs

Mục tiêu của tôi là làm cho ứng dụng của tôi tương thích 2.3 trở lên


bạn đã thêm jar vào thư mục libs?
Raghunandan

có android-support-v7-appcompat.jar
nhật

1
@AbrahimNeil: xem Không thể tìm thấy chủ đề.AppCompat. Hỗ trợ cho ActionBar Android mới có thể giúp bạn
ρяρя K

Câu trả lời:


96

AppCompatlà một dự án thư viện. Bạn cần tham khảo dự án thư viện trong dự án Android của bạn.

Kiểm tra chủ đề Thêm thư viện với tài nguyên .


1
đã đặt android-support-v7-appcompat.jar vào thư mục libs
nhật

4
@ AbrahimNeil đó không phải là cách đúng đắn. đây là một dự án thư viện và do đó phải được tham chiếu giống như các dịch vụ của Google play
Raghunandan

Khi tôi đang nhập android-support-v7-appcompat.jar, không thể giải quyết mục tiêu android-16 thì có cần không?
CN


1
thêm implementation 'com.android.support:appcompat-v7:28.0.0', dưới sự phụ thuộc đã giải quyết vấn đề của tôi.
Hilal

35

Nếu bạn đang sử dụng Eclipse , thì hãy thêm reference librarydự án vào các bước sau:

  1. Nhấp chuột phải vào dự án của bạn trong Project Explorer View.
  2. Nhấp chuột Properties .
  3. Nhấn vào AndroidtrongProperties cửa sổ.
  4. Trong Librarynhóm, bấm vàoAdd...
    • Xem hình ảnh dưới đây.
  5. Chọn thư viện. Nhấp chuột OK .
  6. Nhấp vào OKnút một lần nữa trong cửa sổ Thuộc tính.

Nút "Thêm" trong cửa sổ Thuộc tính dự án, phần Android, nhóm Thư viện.


4
Làm thế nào để bạn biết op đang sử dụng nhật thực không phải android studio?. snap được đăng là cho nhật thực.
Raghunandan

@Raghunandan xin lỗi quên đề cập đến nó
MD

1
Hoạt động hoàn hảo trong Eclipse. Cảm ơn!
Scott

33

Nếu bạn đang sử dụng Android Studio thì chỉ cần thêm phụ thuộc

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

để app/build.gradle. Và nó sẽ hoạt động


2
Ừm ... nó không hoạt động ... nó vẫn không giải quyết được android: Theme.AppCompat. * Trong tệp Styles.xml của tôi.
Michael

Tôi chỉ thay thế triển khai 'com.android.support:appcompat-v7:28.0.0' bằng cách triển khai 'com.android.support:appcompat-v7:25.0.1' và bây giờ nó hoạt động ... nhưng tại sao?
CGR

1
@CGR Tôi tin rằng Android đã thay đổi chủ đề cho 28+ và Light.DarkActionBar không còn khả dụng nữa.
DoomGoober

13

Đối với bất kỳ ai sử dụng VS2015, tôi cũng gặp phải lỗi này và hóa ra tôi đã không thêm thư viện vào dự án ...

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

1
Tôi đã nhận được điều này sau khi bắt đầu một dự án mới trong VS2019 và Xây dựng nó. Chỉ cần thực hiện "Giải pháp xây dựng lại" mà không phải cài đặt bất cứ điều gì khác đã giải quyết các lỗi.
Glen Little

8

Nếu bạn đang sử dụng Eclipse, chỉ cần sao chép android-support-v7-appcompat.jar vào thư mục libs sẽ không hoạt động nếu bạn định sử dụng tài nguyên.

Thực hiện theo các bước từ đây để " Thêm thư viện với tài nguyên ".


7

Một giải pháp đơn giản - thay thế nội dung tệp này (/res/values/styles.xml) thành văn bản:

<resources>

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


1
"Lỗi khi truy xuất cha mẹ cho mục: Không tìm thấy tài nguyên phù hợp với tên đã cho 'AppBaseTheme'."
Yousha Aleayoub

1
Đây không phải là AppCompat .
IgorGanapolsky

4
dependencies {

    compile 'com.android.support:appcompat-v7:23.0.0'

}

Điều này làm việc cho tôi ... trong Android Studio ...


4

Trong trường hợp của tôi, tôi đã lấy một androiddự án từ máy tính này sang máy tính khác và gặp vấn đề này. Điều làm việc cho tôi là sự kết hợp của một số câu trả lời tôi đã thấy:

  • Xóa bản sao của thư viện appcompat trong thư mục libs của không gian làm việc
  • Cài đặt sdk 21
  • Thay đổi thuộc tính dự án để sử dụng bản dựng sdk đó nhập mô tả hình ảnh ở đây
  • Thiết lập và bắt đầu một trình giả lập tương thích với sdks 21
  • Cập nhật cấu hình Run để nhắc thiết bị chạy và chọn Run

Tôi chạy tốt sau những bước này.


3

Sử dụng Visual Studio 2015 (Windows7) + Xamarin đã gặp lỗi này và sau khi thử nhiều thứ (cài đặt gói, tải xuống android_m2reposective_r10.zip ...) đã kết thúc xóa thư mục Xamarin đầy đủ bên trong

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

Sau đó, Xây dựng lại ứng dụng trong VS và lỗi biến mất.


Điều này làm việc cho tôi :) Lưu ý: Sử dụng Visual Studio Enterprise. 2017 15.8 Xem trước 3.0
David Jones

Làm việc cho tôi cũng vậy, sử dụng VS 2017.
Richard Lyle

3

đảm bảo có thư mục v7 trong sdk của bạn, tôi nghĩ rằng có 'Thư viện hỗ trợ Android' (trong Extras) là đủ. Hóa ra tôi đã thiếu 'Kho lưu trữ Maven cục bộ cho Thư viện hỗ trợ (tính năng bổ sung; android; m2reposeective)' Studio thấy rằng thực sự và đã sửa các phụ thuộc lớp. sử dụng gradle để xây dựng sau đó làm việc. $ ứng dụng mèo / 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'
}

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

biên dịch đã được thay thế bằng cách thực hiện, không biết tại sao.


Đây là giải pháp cho tôi.
shizhen

2

Nếu bạn đang sử dụng Android.mk để xây dựng thì hãy sử dụng USE_AAPT2, liên kết trong tài nguyên được xây dựng từ AAR.

Thêm dòng dưới đây trong tệp Android.mk:

LOCAL_USE_AAPT2: = đúng


1
  1. Cập nhật SDK của bạn trong trình quản lý và đảm bảo đưa Android support libraryvào thêm
  2. Chuyển đến SDK trong trình duyệt tệp (Finder trên mac) theo dõi thư mục bổ sung ( ..\sdk\extras\android\support\v7\appcompat\res\valuestrên Windows). Một nơi nào đó trong có một themes.xmlthemes_base.xml . Sao chép cả hai tập tin này.
  3. Trong dự án của bạn dán các tệp vào thư mục 'giá trị'

Việc sao chép Themes_base.xml vào res / value đã giải quyết vấn đề ban đầu nhưng dẫn đến các tham chiếu chưa được giải quyết khác.
FractalBob

1

Nếu bạn đang sử dụng Visual Studio cho MAC , hãy khắc phục sự cố khi nhấp vào Project> Khôi phục các gói Nutget



0

Tôi có vấn đề này như nhau. Không có giải pháp nào được liệt kê ở đây giúp ích cho tình trạng của tôi. Hóa ra, tôi đã nhập thư mục mẹ cho một dự án vào Android Studio 1.5, thay vì chính thư mục dự án. Điều này đã ném Gradel vào một tizzy. Giải pháp là nhập thư mục dự án thay thế.


-1

Trong xamarin nếu bạn gặp phải vấn đề này khi bạn thêm bất kỳ sdk mới nào. Giải pháp đơn giản là Mở tệp kiểu của bạn và thêm dòng này.

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

Đó là giải pháp tốt hơn thay vì thêm appcompat.

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.