Ich habe ein neues Projekt in Android Studio 2.2 Preview 1 mit Android App und Backend-Modul mit Google Messaging erstellt. Dies ist die App-Datei:
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')
}
Aber es gibt:
Fehler: Konflikt mit der Abhängigkeit 'com.google.code.findbugs: jsr305'. Die aufgelösten Versionen für App (1.3.9) und Test-App (2.0.1) unterscheiden sich. Weitere Informationen finden Sie unter http://g.co/androidstudio/app-test-app-conflict .
Ich bin neu in Android und kann diesen Fehler nicht finden. Wie behebe ich das?
2.0.1
funktioniert, müssen beide Versionen erzwungen werden (unabhängig davon, ob beide Versionen identisch sein müssen).Dies ist auf Espresso zurückzuführen. Sie können Ihren Apps Folgendes hinzufügen
build.grade
, um dies zu verringern.quelle
exclude group: 'com.android.support', module: 'support-annotations'
METHODE 1: Ich habe die androidTestCompile auf Espresso-Core-Linie gelöscht, die automatisch in ein neues Projekt aufgenommen wurde. Dann kompiliert mein Android Studio sauber.
Das androidTestCompile befindet sich in "build.gradle (Module: app)":
Ich weiß nicht, ob diese Löschung später Probleme bereiten wird, aber sie funktioniert jetzt sicherlich für mein aktuelles Projekt.
METHODE 2: Das Hinzufügen eines Ausschlusses für Findbugs funktioniert auch:
METHODE 3: Erzwingen des Kompilierens mit einer bestimmten Version:
(Im Folgenden erzwinge ich das Kompilieren mit der höheren Version.)
quelle
Aus dem Gradle Plugin Benutzerhandbuch :
Fügen Sie diese Zeile zu Ihren build.gradle- Abhängigkeiten hinzu, um eine neuere Version für beide APKs zu verwenden:
compile('com.google.code.findbugs:jsr305:2.0.1')
Zum späteren Nachschlagen können Sie Ihre Gradle-Konsole überprüfen. Neben dem Fehler wird ein hilfreicher Link angezeigt, der bei Fehlern bei der Gradle-Erstellung hilft.
quelle
Der Grund, warum dies passiert, ist, dass die Diff-Abhängigkeit dieselbe Bibliothek der Diff-Version verwendet.
Es gibt also 3 Schritte oder (1 Schritt), um dieses Problem zu lösen.
1
Hinzufügen
zu Ihrer
build.gradle
Datei inandroid {...}
2 ..
Öffnen Sie das Terminal im Android Studio
Run-
./gradlew -q app:dependencies
Befehl.3 ..
Klicken Sie in
Clean Project
der Menüleiste von Android Studio in derBuild
Liste.Es wird das Projekt neu erstellen und dann
remove
im ersten Schritt codiert.Vielleicht brauchen Sie nur den 2. Schritt auszuführen. Ich kann kein Rollback durchführen, wenn ein Fehler auftritt. Probieren Sie es aus.
quelle
Als ich
module: 'jsr305'
als zusätzliche Ausschlussanweisung hinzufügte , hat alles gut für mich geklappt.})
quelle
Das Problem, wie in Ihren Protokollen angegeben, sind zwei Abhängigkeiten, die versuchen, verschiedene Versionen der dritten Abhängigkeit zu verwenden. Fügen Sie der App-Gradle-Datei eine der folgenden Optionen hinzu:
quelle
Die akzeptierte Antwort ist eine Möglichkeit, das Problem zu beheben, da nur eine Strategie für die problematische Abhängigkeit (com.google.code.findbugs: jsr305) angewendet wird und das Problem im Projekt mithilfe einer Version dieser Abhängigkeit behoben wird. Grundsätzlich werden die Versionen dieser Bibliothek innerhalb des gesamten Projekts ausgerichtet.
Es gibt eine Antwort von @Santhosh (und einigen anderen Personen), die vorschlägt, dieselbe Abhängigkeit für Espresso auszuschließen, die auf die gleiche Weise funktionieren sollte, aber wenn das Projekt einige andere Abhängigkeiten aufweist, die von derselben Bibliothek abhängen (com.google) .code.findbugs: jsr305), wieder haben wir das gleiche Problem. Um diesen Ansatz verwenden zu können, müssen Sie dieselbe Gruppe von allen Projektabhängigkeiten ausschließen, die von com.google.code.findbugs: jsr305 abhängen. Ich persönlich habe festgestellt, dass Espresso Contrib und Espresso Intents auch com.google.code.findbugs: jsr305 verwenden.
Ich hoffe, diese Gedanken helfen jemandem zu erkennen, was genau hier passiert und wie die Dinge funktionieren (nicht nur kopieren, Code einfügen) :).
quelle
Fügen Sie dies zu Abhängigkeiten hinzu, um die Verwendung der neuesten Version der findbugs-Bibliothek zu erzwingen:
quelle
Das Löschen von Espresso-Abhängigkeiten in der Gradle-Datei funktioniert bei mir.
Löschen Sie diese Zeilen in der App-Gradle-Datei:
quelle
Diejenigen, die denselben Fehler in Android 3.0.1 erhalten, können ihn beheben, indem sie einfach die Versionen von compileSdkVersion und targetSdkVersion auf 27 aktualisieren und in Abhängigkeiten auch com.android.support:appcompat-v7:27.1.1 'implementieren .
quelle
Im Projekt ': app' können Sie Ihrer app / build.gradle-Datei Folgendes hinzufügen:
quelle
Für React-Native-Firebase
app/build.gradle
funktionierte das Hinzufügen zum Abschnitt "Abhängigkeiten" für mich:quelle
Ich habe versucht, Airbnb-Deeplink-Versand zu verwenden und habe diesen Fehler erhalten. Ich musste auch die Findbugs-Gruppe aus dem AnnotationProcessor ausschließen.
quelle
REAKT NATIV
Wenn Sie nach einer reaktiven nativen Lösung suchen, schreiben Sie dieses Snippet in die Gradle-Build-Datei Ihrer betroffenen node_modules, z. B. Firebase in meinem Fall.
quelle