Błąd: (9, 5) błąd: nie znaleziono zasobu android: attr / dialogCornerRadius

118

Więc zainstalowałem Android Studio 3.0.1 i jak tylko otworzyłem gradle zbudowałem i pokazałem następujące błędy. Próbowałem dodać zależności, takie jak projekt i wsparcie, ale na próżno. Czy ktoś mógłby mi pomóc? Z góry dziękuję. wprowadź opis obrazu tutaj

Pokazuje, że nie znaleziono niektórych atrybutów, takich jak dialogCornerRadius i fontVariation Settings.

Dipti Belurgikar
źródło
4
Miałem compileSdkVersion 27i compileSdkVersion 28zmieniając compileSdkVersionsię 28, rozwiązałem problem.
Blasanka

Odpowiedzi:

173

Ten błąd występuje z powodu niezgodności compileSdkVersioni wersji biblioteki.

na przykład:

compileSdkVersion 27
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'

a także unikaj używania znaku + z biblioteką, jak w poniższym przykładzie:

implementation 'com.android.support:appcompat-v7:26.+'

użyj dokładnej wersji biblioteki, takiej jak ta

implementation 'com.android.support:appcompat-v7:26.1.0'

Używanie znaku + z biblioteką utrudnia procesowi budowania zebranie dokładnej wymaganej wersji, co powoduje niestabilność systemu, dlatego należy go odradzać.

Sheharyar Ejaz
źródło
Musiałem zaktualizować mój główny numer wersji compileSdkVersion, aby był taki sam, jak com.android.support:support-annotations, com.android.support:appcompat-v7, com.android.support:support-v4, com.android.support: projekt
oddmeter
66

Jeśli jesteś migrowany do AndroidX i otrzymujesz ten błąd, musisz ustawić kompilację SDK na Androida 9.0 (poziom API 28) lub nowszy

murgupluoglu
źródło
jakikolwiek sposób, aby mieć AndroidX z sdkcompiled 27?
Phil
1
@Phil Przed migracją zaktualizuj swoją aplikację. Zalecamy zaktualizowanie projektu, aby korzystał z ostatecznej wersji biblioteki wsparcia: wersja 28.0.0. Dzieje się tak, ponieważ artefakty systemu AndroidX w wersji 1.0.0 są binarnymi odpowiednikami artefaktów Support Library 28.0.0. Źródło . Nie ma więc opcji dla sdk 27 ​​z androidX
murgupluoglu
23

Miałem dokładnie ten sam problem. Poniższy wątek pomógł mi go rozwiązać. Po prostu ustaw wersję Compile SDK na Android P.

https://stackoverflow.com/a/49172361/1542720

Rozwiązałem ten problem, wybierając:

API 27+: Android API 27, P Preview (wersja zapoznawcza)

w ustawieniach struktury projektu. Poniższy obraz przedstawia moje ustawienia. 13 błędów, które pojawiały się podczas tworzenia aplikacji, zniknęło.

Gradle settings

Adnan Mulla
źródło
3
zauważ , nie musisz CELOWAĆ na 28, możesz po prostu ustawić compileSdkVersioni buildToolsVersionna 28 i zostawić swoją targetSdkVersionniższą wersję
Kirill Karmazin
16

Sprawdź zależności pod kątem zastosowań +w wersjach. Może być używana pewna zależność com.android.support:appcompat-v7:+. Prowadzi to do problemów, gdy zostanie wydana nowa wersja i może zepsuć funkcje.

Rozwiązaniem byłoby użycie com.android.support:appcompat-v7:{compileSdkVersion}.+lub +w ogóle nieużywanie i użycie pełnej wersji (np. com.android.support:appcompat-v7:26.1.0).

Jeśli nie widzisz odpowiedniej linii w plikach build.gradle, uruchom w terminalu Android Studio, aby uzyskać przegląd tego, czego używa każda zależność

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath (uwzględnij zależności androidtest)

LUB

gradlew -q dependencies app:dependencies --configuration debugCompileClasspath (regularne zależności do debugowania)

co prowadzi do czegoś, co wydaje się bliskie temu

------------------------------------------------------------
Project :app
------------------------------------------------------------

debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
|    +--- com.android.support:support-annotations:26.1.0
|    +--- com.android.support:support-v4:26.1.0 (*)
|    +--- com.android.support:support-vector-drawable:26.1.0
|    |    +--- com.android.support:support-annotations:26.1.0
|    |    \--- com.android.support:support-compat:26.1.0 (*)
|    \--- com.android.support:animated-vector-drawable:26.1.0
|         +--- com.android.support:support-vector-drawable:26.1.0 (*)
|         \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
|    +--- com.android.support:support-v4:26.1.0 (*)
|    +--- com.android.support:appcompat-v7:26.1.0 (*)
|    +--- com.android.support:recyclerview-v7:26.1.0
|    |    +--- com.android.support:support-annotations:26.1.0
|    |    +--- com.android.support:support-compat:26.1.0 (*)
|    |    \--- com.android.support:support-core-ui:26.1.0 (*)
|    \--- com.android.support:transition:26.1.0
|         +--- com.android.support:support-annotations:26.1.0
|         \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
|    \--- com.android.support.constraint:constraint-layout-solver:1.0.2

(*) - dependencies omitted (listed previously)

Jeśli nie masz kontroli nad zmianą wersji, spróbuj wymusić użycie określonej wersji.

configurations.all {
    resolutionStrategy {
        force "com.android.support:appcompat-v7:26.1.0"
        force "com.android.support:support-v4:26.1.0"
    }
}

Zależność siły może być różna w zależności od tego, co jest ustawione na 28.0.0

btelman96
źródło
9

spróbuj zmienić compileSdkVersion na: compileSdkVersion 28

Estevão Lucas
źródło
3
Ale chcę, żeby to było 26.
Taslim Oseni,
Tak, też chcę być w 26. dowolne rozwiązanie @TaslimOseni
Vigneswaran A
1
@VigneswaranA, ostatecznie musiałem trzymać się 28, a tym samym zaktualizować wszystkie moje inne zależności. Nie mogłem znaleźć rozwiązania.
Taslim Oseni
7

Miałem ten sam problem podczas dodawania interfejsu API nawigacji mapbox i rozwiązałem ten problem, przechodząc do: plik> Struktura projektu, a następnie ustawiając wersję kompilacji sdk i wersję narzędzia kompilacji na najnowszą. A oto zrzut ekranu: ustawienia Zrzut ekranu

Mam nadzieję, że to pomoże.

Haroon khan
źródło
6

Dzieje się tak dlatego, że implementacje compileSdkVersion, buildToolsVersion i Dependecies nie pasują do siebie Musisz zrobić tak, mam 28 bibliotek

compileSdkVersion 28
targetSdkVersion   28
buildToolsVersion  28.0.3
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'

Jeśli używasz Any, gdzie mniej niż 28, ten błąd powinien wystąpić, więc spróbuj dopasować bibliotekę we wszystkich.

Sahil Choudhary
źródło
6

Ten sam problem wystąpił podczas pracy nad aplikacją z kilkoma modułami, sprawdź, czy zwiększając wartości compileSdkVersioni targetSdkVersiondo 28+ w jednym module, robisz również dla innych.

Moduł działał na compileSdkVersion 29i targetSdkVersion 29podczas gdy drugi moduł aplikacji był uruchomiony na compileSdkVersion 27i targetSdkVersion 27.

Zmiana drugiego modułu tak, aby również kompilował i docelowo SDK w wersji 29 rozwiązała mój problem. Mam nadzieję, że to komuś pomoże.

Opeyemi
źródło
Cieszę się, że ci pomogło.
Opeyemi
5

Może już za późno, ale znalazłem rozwiązanie:

Musisz edytować w build.gradlealbo compileSdkVersion-> do ostatniego (teraz jest to 28). Tak:

android {
compileSdkVersion 28
defaultConfig {
    applicationId "NAME_OF_YOUR_PROJECT_DIRECTORY"
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

lub możesz zmienić wersję realizacji:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    api 'com.android.support:design:27.+'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Indygo0087
źródło
4

Znalazłem zgrabną wtyczkę, która rozwiązuje ten problem: cordova-android-support-gradle-release

wtyczka cordova dodaj cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION = 27. + --save

zi88
źródło
1

Aby rozwiązać ten problem, należy zastosować zależności, jak pokazano poniżej:

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
}

Prosimy nie używać wersji:

v7: 28.0.0-alpha1

Sanche
źródło
1
Jeśli używasz kompilacji SDK 28 i narzędzi do tworzenia 28.0.1, możesz.
norbDEV
1

Napotkałem ten sam problem, ale pomyślnie go rozwiązałem, zmieniając wersję compileSdkVersion na najnowszą, czyli 29, i zmieniając wersję targetSdkVersion na najnowszą, czyli 29.

Przejdź do pliku gradile.build i zmień wersję compilesdkversion i targetdkversion.

Hadayat ullah
źródło
1

w moim przypadku próbowałem File> Invalidate Cache/Restarti to działa dla mnie.

Rohit Mandiwal
źródło
0

W moim przypadku ten błąd wystąpił podczas korzystania z

implementation 'com.android.support:appcompat-v7:+'
implementation 'com.android.support:design:+'

biblioteki wraz z googlami

implementation 'com.google.android.material:material-components:+'

biblioteka. Jeśli tak jest w Twoim projekcie, zdecydowanie polecam całkowite usunięcie biblioteki komponentów materiałów Google z projektu.

laim2003
źródło
0
 buildscript {

    project.ext {
        supportLibVersion = '27.1.1'
        compileVersion = 28
        minSupportedVersion = 22
    }
}

i ustaw zależności:

implementation "com.android.support:appcompat-v7:$project.supportLibVersion"
Viral Patel
źródło