Stworzyłem nowy projekt w Android Studio 2.2 Preview 1 z aplikacją na Androida i modułem backend z Google Messaging. To jest plik aplikacji:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
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.4.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
compile project(path: ':backend', configuration: 'android-endpoints')
}
Ale daje:
Błąd: konflikt z zależnością „com.google.code.findbugs: jsr305”. Rozwiązane wersje aplikacji (1.3.9) i aplikacji testowej (2.0.1) różnią się. Szczegółowe informacje można znaleźć na stronie http://g.co/androidstudio/app-test-app-conflict .
Jestem nowym użytkownikiem Androida i nie mogę znaleźć tego, co oznacza ten błąd. Jak to naprawić?
2.0.1
(cokolwiek, obie wersje muszą być zmuszone do identyczności).Wynika to z espresso. Możesz dodać następujące aplikacje
build.grade
do swoich aplikacji, aby to złagodzić.źródło
exclude group: 'com.android.support', module: 'support-annotations'
METODA 1: Usunąłem androidTestCompile na linii rdzenia espresso, która została automatycznie uwzględniona w nowym projekcie. Następnie moje Android Studio kompiluje się czysto.
AndroidTestCompile znajduje się w „build.gradle (Module: app)”:
Nie wiem, czy to usunięcie będzie miało jakiś problem w przyszłości, ale z pewnością działa teraz w moim obecnym projekcie.
METODA 2: Działa także dodanie wykluczenia w findbugs:
METODA 3: Wymuszanie kompilacji z określoną wersją:
(W dalszej kolejności zmuszam ją do kompilacji z wyższą wersją).
źródło
Z instrukcji obsługi wtyczki Gradle :
Dodaj ten wiersz do zależności build.gradle, aby używać nowszej wersji dla obu plików APK:
compile('com.google.code.findbugs:jsr305:2.0.1')
W celu skorzystania z niej w przyszłości możesz sprawdzić konsolę Gradle, a obok błędu pojawi się pomocne łącze, które pomoże w przypadku błędów kompilacji stopni.
źródło
Powodem tego jest to, że zależność od różnic używa tej samej biblioteki wersji różnic.
Istnieją więc 3 kroki (1 krok), aby rozwiązać ten problem.
1. miejsce
Dodaj
do twojego
build.gradle
pliku wandroid {...}
2. miejsce
Otwórz Terminal w studio android
wykonywania
./gradlew -q app:dependencies
polecenia.3. miejsce
Kliknij
Clean Project
na pasku menu Android Studio naBuild
liście.Odbuduje projekt, a następnie
remove
kod w pierwszym kroku.Może potrzebujesz wykonać drugi krok. Nie mogę wycofać, gdy wystąpi błąd. Spróbuj.
źródło
Kiedy dodałem
module: 'jsr305'
jako dodatkowe oświadczenie wykluczające, wszystko ułożyło się dla mnie dobrze.})
źródło
Problem, jak stwierdzono w dziennikach, polega na 2 zależnościach próbujących użyć różnych wersji trzeciej zależności. Dodaj jedną z następujących opcji do pliku klasy aplikacji:
źródło
Przyjęta odpowiedź jest jednym ze sposobów rozwiązania problemu, ponieważ po prostu zastosuje pewną strategię dla problematycznej zależności (com.google.code.findbugs: jsr305) i rozwiąże problem wokół projektu, wykorzystując pewną wersję tej zależności. Zasadniczo wyrówna wersje tej biblioteki w całym projekcie.
Odpowiedź @Santhosh (i kilku innych osób) sugeruje wykluczenie tej samej zależności dla espresso, która powinna działać w ten sam sposób, ale jeśli w projekcie występują inne zależności zależne od tej samej biblioteki (com.google .code.findbugs: jsr305), znowu będziemy mieli ten sam problem. Aby zastosować to podejście, musisz wykluczyć tę samą grupę ze wszystkich zależności projektu, które zależą od com.google.code.findbugs: jsr305. Osobiście przekonałem się, że Espresso Contrib i Espresso Intents używają również com.google.code.findbugs: jsr305.
Mam nadzieję, że te myśli pomogą komuś zrozumieć, co dokładnie się tutaj dzieje i jak to działa (nie tylko kopiuj, wklej kod) :).
źródło
Dodaj to do zależności, aby wymusić użycie najnowszej wersji biblioteki findbugs:
źródło
usuwanie zależności espresso w pliku gradle działa dla mnie.
usuń te wiersze z pliku oceny aplikacji:
źródło
Ci, którzy są coraz ten sam błąd w Androidzie 3.0.1, można go rozwiązać, po prostu zaktualizować wersje z compileSdkVersion i targetSdkVersion do 27 , a także wdrożenie com.android.support:appcompat-v7:27.1.1' w zależnościach .
źródło
W projekcie „: aplikacja” możesz dodać następujące elementy do pliku app / build.gradle:
źródło
W przypadku reakcji-natywna-baza ognia dodanie tego do
app/build.gradle
sekcji zależności sprawiło, że działało to dla mnie:źródło
Próbowałem użyć wysyłki deeplink airbnb i otrzymałem ten błąd. Musiałem także wykluczyć grupę findbugs z procesora adnotacji.
źródło
REACT NATIVE
Jeśli szukasz zareagować na rozwiązanie natywne, napisz ten fragment w pliku kompilacji stopni node_modules, którego dotyczy problem, np. Firebase w moim przypadku.
źródło