Jestem nowy w tworzeniu aplikacji na Androida. Kiedy próbowałem utworzyć nowy projekt, Android Project ... pojawił się następujący komunikat ...
Błąd: nie powiodło się wykonanie zadania „: app: preDebugAndroidTestBuild”.
Konflikt z zależnością „com.android.support:support-annotations” w projekcie „: app”. Rozwiązane wersje aplikacji (26.1.0) i aplikacji testowej (27.1.1) różnią się. Szczegółowe informacje można znaleźć pod adresem https://d.android.com/r/tools/test-apk-dependency-conflicts.html . Informacje: Zadania Gradle [: app: generationDebugSources,: app: generatedDebugAndroidTestSources,: app: mockableAndroidJar]
To jest zrzut ekranu mojego projektu. Kliknij tutaj, aby zobaczyć zrzut ekranu błędu, który otrzymałem
Próbowałem też dodać ten kod do mojej zależności. androidTestCompile „com.android.support:support-annotations:23.3.0” nie wyszło. Próbowałem też 27.1.1 i 26.1.0 .. to też nie wyszło.
Odpowiedzi:
Na podstawie twojego zrzutu ekranu znalazłem dwa działające rozwiązania:
Pierwsze rozwiązanie : dodaj tę linię do zależności modułu gradle
i zsynchronizuj swój projekt
Uwaga: jeśli używasz Android Studio 3+, zmień
compile
naimplementation
Drugie rozwiązanie : Skonfiguruj właściwości dotyczące całego projektu, które można znaleźć w dokumentacji https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties
w gradle projektu dodaj tę linię:
Następnie, aby uzyskać dostęp do tej sekcji, zmień
compileSdkVersion
linię nacompileSdkVersion rootProject.ext.compileSdkVersion
iw
dependencies
sekcji zmień zaimportowaną bibliotekę na taką:i zsynchronizuj swój projekt
Uwaga: jeśli używasz Android Studio 3+, zmień
compile
naimplementation
Aby poznać różnicę między
compile
iimplementation
spójrz na to. Jaka jest różnica między implementacją a kompilacją w gradleźródło
Dodaj poniższy wiersz w pliku app.gradle przed blokiem zależności.
Poniżej znajduje się zrzut ekranu dla lepszego zrozumienia.
blok configuration.all będzie pomocny tylko wtedy, gdy chcesz, aby docelowy sdk miał wartość 26. Jeśli możesz zmienić go na 27, błąd zniknie bez dodania bloku konfiguracyjnego w pliku app.gradle.
Jest jeszcze jeden sposób, aby usunąć całą implementację testową z pliku app.gradle, rozwiązałoby to błąd, a także nie trzeba dodawać bloku konfiguracyjnego ani zmieniać wersji targetdk.
Mam nadzieję, że to pomoże.
źródło
Jeśli używasz wersji 26, to wersja wewnętrznych zależności powinna być 1.0.1 i 3.0.1, czyli jak poniżej
Jeśli używasz wersji 27, to wersja wewnętrznych zależności powinna być 1.0.2 i 3.0.2, czyli w następujący sposób
źródło
Jeśli używasz Android Studio 3.1. + Lub nowszego
po prostu umieść to w swoich zależnościach od gradle:
Ogólnie tak:
źródło
Jest to spowodowane konfliktem wersji, aby go rozwiązać, po prostu wymuś aktualizację wersji adnotacji pomocy technicznej, dodając ten wiersz do modułu: app gradle
implementation ('com.android.support:support-annotations:27.1.1')
Mam nadzieję, że to rozwiąże Twój problem;)
Edytować
Prawie zapomniałem, że możesz zadeklarować jedną dodatkową właściwość ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) dla wersji, przejść do swojego projektu (lub najwyższego) pliku gradle i zadeklaruj swoje wsparcie, lub tylko dla tego przykładu, wersja adnotacji var
ext.annotation_version = "27.1.1"
Następnie w swoim gradle modułu zamień go na:
implementation ("com.android.support:support-annotations:$annotation_version")
Jest to bardzo podobne do rozwiązania @emadabel, które jest dobrą alternatywą do zrobienia tego, ale bez bloku lub
rootproject
przedrostka.źródło
Dodanie tego do build.gradle (aplikacja modułu) działało dla mnie:
kompiluj „com.android.support:support-annotations:27.1.1”
źródło
Nie martw się To proste:
Przejdź do struktury katalogów „Project” i przejdź do „Gradle Scripts”, a wewnątrz niej przejdź do „build.gradle (Module: app)” i kliknij go dwukrotnie.
Teraz - Przewiń program w dół i przejdź do sekcji zależności: Jak poniżej
zależności {
}
Teraz w tym Usuń ostatnie dwa wiersze kodu i odbuduj aplikację, a teraz będzie działać
Zależności powinny być:
zależności {
}
ODBUDUJ APLIKACJĘ I DZIAŁA !!
źródło
Przejdź do pliku build.gradle (aplikacja modułu) w swoim projekcie:
Postępuj zgodnie z rysunkiem i zmień te wersje:
a jeśli Android Studio w wersji 2: Zmień linię za pomocą tej linii:
else Zmień linię za pomocą tej linii:
i miejmy nadzieję, że rozwiążesz swój błąd.
źródło
Dodaj to do swojego pliku gradle.
źródło
Innym prostym sposobem rozwiązania tego problemu jest edycja
build.gradle
(aplikacji):android
tagu i zmieńcompileSdkVersion 26
nacompileSdkVersion 27
defaultConfig
tagu i zmieńtargetSdkVersion 26
natargetSdkVersion 27
dependencies
oznaczyć i zmienićimplementation 'com.android.support:appcompat-v7:26.1.0'
naimplementation 'com.android.support:appcompat-v7:27.1.1'
źródło
Mam ten sam problem, w build.gradle (Module: app) dodaj następujący wiersz kodu wewnątrz zależności:
U mnie zadziałało doskonale
źródło
Ważna aktualizacja
Przejdź do build.gradle na poziomie projektu, zdefiniuj zmienne globalne
Przejdź do build.gradle na poziomie aplikacji i użyj zmiennych globalnych
app build.gradle
jakaś biblioteka build.gradle
Rozwiązaniem jest, aby Twoje wersje były takie same jak we wszystkich modułach. Abyś nie miał konfliktów.
Ważne wskazówki
Zawsze mieć najnowszy ale wersje stabilne wersje są niestabilne
alpha
,beta
arc
ignoruje je w rozwoju.Zaktualizowałem wszystko poniżej w moich projektach i nie napotykam już tych błędów.
build.gradle
-classpath 'com.android.tools.build:gradle:3.2.0'
( Trackandroid.build.gradle
release & this )buildToolVersion
(Track buildToolVersion release )compileSdkVersion
itargetSdkVersion
śledzenie wersji platformyMiłego kodowania! :)
źródło
Jeśli zmiana docelowej wersji sdk nie pomoże, jeśli masz jakiekolwiek zależności z wersją,
3.0.2
zmień ją na3.0.1
.np. zmiana
do
źródło
Lepsze rozwiązanie jest wyjaśnione w oficjalnym wyjaśnieniu . Odpowiedź, której udzieliłem wcześniej, zostawiłem pod linią poziomą.
Zgodnie z tamtym rozwiązaniem:
Użyj zewnętrznego tagu i zapisz poniższy kod w pliku build.gradle najwyższego poziomu . Zamierzasz zmienić wersję na zmienną zamiast statycznego numeru wersji.
Zmień statyczne numery wersji w pliku build.gradle na poziomie aplikacji, ten ma
(Module: app)
bliski.Zsynchronizuj swój projekt, a nie otrzymasz żadnych błędów.
Nie musisz niczego dodawać do skryptów Gradle. Zainstaluj niezbędne zestawy SDK, a problem zostanie rozwiązany.
W twoim przypadku zainstaluj poniższe biblioteki z Preferencje> Android SDK lub Narzędzia> Android> Menedżer SDK
źródło
Dodaj tę linię pod zależnościami w pliku gradle
źródło