Błąd pobierania elementu nadrzędnego: nie znaleziono zasobu pasującego do podanej nazwy po uaktualnieniu do AppCompat v23

Zawsze programowałem Androida z Eclipse i zdecydowałem się na migrację do Android Studio . Postanowiłem użyć tego samego SDK, które już miałem dla Eclipse, więc:

  • rozpoczął nowy projekt
  • Ustaw minimum SDK 4.0 (poziom API 14)
  • Wybierz opcję pustej aktywności
  • używane domyślne nazwy dla nazwy działania i nazwy układu
  • Hit Finish

Po kilku sekundach Gradle kończy kompilację i wyrzuca mi dwa błędy z następujące komunikaty w pliku Teste4 \ app \ build\intermediates/exploded-AAR \ com.android.wsparcie \ appcompat-v7\23.0.0 \ res \ values-v23 \ values-v23.xml:

Błąd:(2) Błąd pobierania rodzica dla elementu: nie znaleziono zasobu pasującego do podanej nazwy 'android:TextAppearance.Materiał.Widget.Guzik.Inverse".

Błąd: (2) Błąd pobierania rodzica dla elementu: nie znaleziono zasobu pasującego do podanej nazwy " android:Widget.Materiał.Guzik.Kolorowe".

Pod plik - > struktura projektu - > Moduły: aplikacja (lewa kolumna) -> Zakładka właściwości , mam ustawione wersje:

    [[5]} "Skompiluj wersję Sdk": Android 5.1 (poziom API 22)
  • "Build Tools Version": 23.0.2

Co powinienem zrobić, aby to naprawić?

Już próbowałem co sugerowano w pytaniu Stack Overflow appcompat-v7: 21.0.0': nie znaleziono zasobów pasujących do podanej nazwy: attr 'android: actionModeShareDrawable', ale nie zadziałało.

Author: Community, 2015-08-18

24 answers

Skompilowana wersja SDK musi odpowiadać głównej wersji biblioteki wsparcia.

Ponieważ używasz wersji 23 biblioteki wsparcia, musisz skompilować z wersją 23 Android SDK.

Alternatywnie możesz kontynuować kompilację z wersją 22 zestawu SDK Androida, przełączając się na najnowszą bibliotekę wsparcia v22.

 1150
Author: Bryan Herbst,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-18 14:53:08

Dzieje się tak, ponieważ po aktualizacji Android Studio domyślnie używa API w wersji 23.

Zadziałało dla mnie:

Naciśnij Ctrl + Shift + Alt + S aby przejść do strony struktury projektu. Przejdź do zakładki właściwości i zmień 23.0.0 na 22.0.1 (lub równoważne z tym, czego używałeś wcześniej) w obszarze narzędzia budowania i Przebuduj projekt.

Jeśli to nie zadziała, przejdź do gradle: app i then

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

Edytuj v7:23.0.0 do v7: 22.2.1 Jak pokazano powyżej i zsynchronizuj gradle. To na pewno zadziała.

 138
Author: Sourav Nanda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 13:22:39

Po aktualizacji Android Studio domyślnie używa interfejsu API w wersji 23, co jest główną przyczyną jego wystąpienia.

Na początku sprawdź swoją wersję AppCompat w build.gradle(moduł: aplikacja) Czyli

Tutaj wpisz opis obrazka

Jeśli po zmianie na 23 wystąpi błąd, po prostu pobierz

Compile Sdk Version to API 23, and Build Tools Version to 23.0.0

Z menedżera SDK. If already downloaded then:

1. Go to SDK Manager and
2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0

Kliknij przycisk SDK Manager i otwórz dialog.

Tutaj wpisz opis obrazka

Kliknij platformę SDK i sprawdź, czy Android 6.0 jest pobrany, czy nie.

Jeśli nie, pobierz to najpierw. Po zakończeniu pobierania kliknij Zastosuj.

Tutaj wpisz opis obrazka

Teraz musisz zastosować zmiany do swojego projektu z ustawień. Następnie naciśnij Ctrl + Alt + Shift + S Aby otworzyć ustawienie

  1. Kliknij aplikację z listy.
  2. kliknij właściwości
  3. Zmień swoją Skompiluj wersję SDK NA API 23
  4. Zmień swoją wersję Build Tools na 23.0.0

Tutaj wpisz opis obrazka

Nie zapomnij odbudować swojego projektu. Wtedy twój błąd zniknie.
 115
Author: Ravikant Paudel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 20:29:03

Jeśli próbowałeś zmienić target na poprzednią wersję GooglePlayServices lub AppCompatv7 i to nie działa, sprawdź, czy nie masz zależności project-libraries, ten projekt będzie skierowany do najnowszej wersji którejkolwiek z tych bibliotek. Przydarzyło mi się to z projektem biblioteki Google Maps Utils:

Zastąpić:

compile 'com.google.android.gms:play-services:+'

Do

compile 'com.google.android.gms:play-services:8.3.0'

Następnie możesz kontynuować pełne targetowanie API 22

Jeśli nadal nie kompiluje się, czasami jest przydatne ustawić compileSdkVersion API do 23 i targetSdkVersion do 22.

 70
Author: Pelanes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 11:18:51

Zgadzam się z poprzednią odpowiedzią. Twoja skompilowana wersja SDK musi być zgodna z biblioteką wsparcia. Oto co zrobiłem.

  1. możesz przejść do menedżera SDK i pod platformą SDK zainstalować Androida 5.X z poziomem API 23.
  2. w sekcji struktura projektu Zmień wersję kompilacji SDK na API 23, A wersję narzędzi do budowania na 23.0.0

Wtedy powinno się budować bez problemu.

 35
Author: Stucky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 13:21:11

Musisz ustawić compileSdkVersion na 23.

Ponieważ API 23 Android usunęło Przestarzałe pakiety Http Apache, więc jeśli używasz ich do żądań serwera, musisz dodać useLibrary 'org.apache.http.legacy' do build.gradle, Jak podano w tym linku:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}
 22
Author: Dharma Sai Seerapu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 05:26:53

Ten problem jest podniesiony, ponieważ teraz skompilowana wersja SDK musi pasować do głównej wersji biblioteki wsparcia dla Androida.

W moim przypadku mam Android Support Library wersja 23, więc musiałem skompilować z Android SDK version 23, i musiałem to zmienić w moim pliku build.gradle:

Tutaj wpisz opis obrazka

Cóż niektórzy z was będą musieli zainstalować SDK, Android 6.0 (API 23)

Tutaj wpisz opis obrazka

And dont forget to Sync project with gradle files

 15
Author: Jorgesys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'

defaultConfig {
    applicationId ""
    minSdkVersion 14
    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.google.code.gson:gson:2.3.1'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.1'
}
 12
Author: dhiku,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-06 12:12:44

Znalazłem rozwiązanie, Problem zaczął się po zaktualizowaniu sdk, potem użyłem innego buildToolsVersion ('22.0.1') a ja używałem innego wsparcia biblioteki jak compile ' com.android.wsparcie: appcompat-v7: 23.0.0 ' , pokazano na obrazku poniżej

Tutaj wpisz opis obrazka

To był problem " android.widget.Materiał ..." Następnie użyłem tej samej wersji dla biblioteki wsparcia jak compile ' com.android.wsparcie: appcompat-v7: 22.0.1 ' i gotowe. (Pokazuje Cię na poniższym zrzucie ekranu)

Tutaj wpisz opis obrazka

 9
Author: Naveed Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-03 08:01:10

Powinieneś skompilować swój projekt z najnowszą wersją, więc zaktualizuj i zainstaluj z zestawu SDK. Zsynchronizuj swój projekt za pomocą przycisku sync project with Gradle file.
Możesz również kontynuować istniejącą wersję, ale sprawdź ją zainstalowaną poprawnie poniżej obrazka wskazuje na API 22, który jest poprawnie zainstalowany. Tutaj wpisz opis obrazka

I zsynchronizować swój projekt w razie potrzeby.

Tutaj wpisz opis obrazka

To może pomóc.
 9
Author: Inzimam Tariq IT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-05 20:45:45

Jak zauważył Tanis.7x, wersja biblioteki wsparcia (23) nie pasuje do targetSdkVersion (22)

Możesz to naprawić, wykonując następujące czynności:

W pliku build.grade twojego modułu aplikacji Zmień następujący wiersz kodu

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

Do

compile 'com.android.support:appcompat-v7:22.+'

Będzie to używać najnowszej wersji appcompat, która jest zgodna z SdkVersion 22.

 8
Author: RWIL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-01 13:46:43

Skompilowana wersja SDK musi pasować do głównej wersji biblioteki wsparcia. To jest rozwiązanie twojego problemu. Możesz to łatwo sprawdzić w skryptach Gradle w pliku build.gradle. Fx: jeśli compileSdkVersion jest 23, Twoja biblioteka kompilacji musi zaczynać się od 23.

  compileSdkVersion 23
    buildToolsVersion "23.0.0"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 340
        versionName "3.4.0"
    }
dependencies {
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.0.1'
}

I zawsze sprawdź, czy Twój Android Studoi ma obsługiwany poziom API. Możesz to sprawdzić w swoim Android SDK, w ten sposób: Tutaj wpisz opis obrazka

 7
Author: Oskar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-04 12:03:22

W moim przypadku była to wyższa wersja Google-play-services. Ustawiłem je na 7.0.0 (nie 8 .x) i wszystko było ok.

 6
Author: Alecs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 13:52:13

Chciałem downgrade z API 23 do 22 i dostał ten błąd. I had to change all build.gradle pliki w projekcie w celu skompilowania.

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.yourapp.app"
        minSdkVersion 14
        targetSdkVersion 22
    }
...
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.google.android.gms:play-services-gcm:10.0.1'
}
 5
Author: CoolMind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-19 12:23:29

To mi pomogło: dodanie konkretnej platformy android

Należy wykonać następujące czynności... W moim przypadku było to cordova ale to samo dotyczy ionic, phonegap i inne tego typu frameworki:

  1. wymień wszystkie platformy zainstalowane dla Twojego projektu: cordova platform list. Zobaczysz coś takiego:

Tutaj wpisz opis obrazka

  1. Usuń platformę android: cordova platform remove android.

  2. Następnie dodaj konkretną platformę android: cordova platform add [email protected].

Powodzenia! :)
 4
Author: Lentyai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 08:34:51

Mam te same problemy. Rozwiązałem swój problem aktualizując gradle.zbuduj dla każdego podmodułu najnowszą wersję kompilatora.

 3
Author: sonida,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-27 22:41:06

Wszystko jest świetne, ale nikt z Was nie wyjaśnił, gdzie pobrać narzędzia do budowania SDK

Wszystko jest świetne, ale nikt z Was nie wyjaśnił, gdzie pobrać narzędzia do budowania SDK

 2
Author: Stav Bodik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 15:57:26

Inne rozwiązanie : przejdź do

\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x

Otwórz .aar Plik z 7-zip lub winrar, w folderze res usuń folder values-23 i zapisz zmiany .

 1
Author: Ali Zarei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-19 16:57:04

On module: app (Gradle)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.namepack.nameappxxxxx"
        minSdkVersion 16
        targetSdkVersion 21
        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:21.0.3'
}

Project: nameAppXXXX (Gradle)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'

    }
}

allprojects {
    repositories {
        jcenter()
    }
}

I edytować swoją aktywność AppCompatActivity na przykład Activity:

package com.namepack.nameappxxxxx;


import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;

public class NameClass extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
    }


}
 1
Author: Alex Zaraos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 20:47:08

Menedżer SDK

Upewnij się, że wszystkie są aktualne.

 1
Author: Ganesh Kanna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 06:04:33

Upgrade Android Studio.

Miałem ten problem z Android Studio 1.3.1 i żadna z innych odpowiedzi nie zadziałała dla mnie, ale po aktualizacji do 1.5.1 nie było żadnych problemów.

 1
Author: Matthew Read,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 20:05:29

Jeśli używasz phonegap (cross-platform) i masz ten sam problem powyżej, wystarczy usunąć platformę android za pomocą poniższego polecenia.

PhoneGap platform remove android

I dodać jeszcze raz.

Phonegap platform add android

Więc problem rozwiązany dla mnie.

 1
Author: Edukondalu Thaviti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Jak już inni wspominali Twój compile sdk version musi pasować do Twojej support library's głównej wersji. Jest to jednak również istotne dla subprojects, Jeśli masz jakiekolwiek.

W takim przypadku możesz ustawić subprojects skompilować wersje sdk za pomocą następującego skryptu:

subprojects { subproject ->
afterEvaluate{
    if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
        android {
            compileSdkVersion rootProject.ext.compileSdkVersion
            buildToolsVersion rootProject.ext.buildToolsVersion
        }
      }
   }
}

Dodaj ten skrypt do głównego pliku build.gradle.

 0
Author: TheBaj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-19 09:56:23

Jeśli dostajesz błędy nawet po pobraniu najnowszego SDK i Android Studio, oto co zrobiłem:

  1. Pobierz najnowszy SDK
  2. Otwórz plik-struktura projektu (Ctrl + Alt + Shift + S )
  3. w modules Wybierz app
  4. w zakładce Właściwości: zmień wersję kompilacji SDK na API 23 Android 6.0 marshmallow (najnowsza)

Mam nadzieję, że to komuś pomoże, żeby nie cierpiał tak jak ja dla tych par dni.

 -1
Author: xsushil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 20:24:59