Ich bin neu in der Android App-Entwicklung. Als ich versuchte, ein neues Projekt, Android Project, zu erstellen, tauchte die folgende Meldung auf.
Fehler: Ausführung für Aufgabe ': app: preDebugAndroidTestBuild' fehlgeschlagen.
Konflikt mit der Abhängigkeit 'com.android.support:support-annotations' im Projekt ': app'. Die aufgelösten Versionen für App (26.1.0) und Test-App (27.1.1) unterscheiden sich. Weitere Informationen finden Sie unter https://d.android.com/r/tools/test-apk-dependency-conflicts.html . Information: Gradle-Aufgaben [: app: generateDebugSources ,: app: generateDebugAndroidTestSources ,: app: mockableAndroidJar]
Dies ist der Screenshot meines Projekts. Klicken Sie hier, um den Screenshot des Fehlers zu sehen, den ich erhalten habe
Ich habe auch versucht, diesen Code zu meiner Abhängigkeit hinzuzufügen. androidTestCompile 'com.android.support:support-annotations:23.3.0' das hat nicht geklappt. Ich habe auch 27.1.1 und 26.1.0 ausprobiert. Das hat auch nicht geklappt.
Antworten:
Basierend auf Ihrem Screenshot habe ich zwei funktionierende Lösungen gefunden:
Erste Lösung : Fügen Sie zu Abhängigkeiten Ihres Gradle-Moduls diese Zeile hinzu
und synchronisieren Sie Ihr Projekt
Hinweis: Wenn Sie Android Studio 3+ verwenden, wechseln Sie
compile
zuimplementation
Zweite Lösung : Konfigurieren Sie projektweite Eigenschaften in der Dokumentation https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties
Fügen Sie im Projektgradle diese Zeile hinzu:
Um dann auf diesen Abschnitt zuzugreifen, ändern Sie die
compileSdkVersion
Zeile incompileSdkVersion rootProject.ext.compileSdkVersion
und
dependencies
ändern Sie im Abschnitt die importierte Bibliothek wie folgt:und synchronisieren Sie Ihr Projekt
Hinweis: Wenn Sie Android Studio 3+ verwenden, wechseln Sie
compile
zuimplementation
Für die Differenz zwischen
compile
undimplementation
Blick auf diese Was ist der Unterschied zwischen der Umsetzung und der Kompilierung in gradle istquelle
Fügen Sie die folgende Zeile in Ihre app.gradle-Datei ein, bevor Sie Abhängigkeiten blockieren.
Es gibt auch einen Screenshot unten zum besseren Verständnis.
Der Block configuration.all ist nur hilfreich, wenn Ihr Ziel-SDK 26 sein soll. Wenn Sie ihn auf 27 ändern können, wird der Fehler behoben, ohne dass der Konfigurationsblock in der Datei app.gradle hinzugefügt wird.
Es gibt noch eine weitere Möglichkeit, wenn Sie die gesamte Testimplementierung aus der Datei app.gradle entfernen würden, um den Fehler zu beheben. In diesem Fall müssen Sie weder den Konfigurationsblock hinzufügen noch die Version von targetdk ändern.
Hoffentlich hilft das.
quelle
Wenn Sie Version 26 verwenden, sollte die Version innerhalb von Abhängigkeiten 1.0.1 und 3.0.1 sein, dh wie folgt
Wenn Sie Version 27 verwenden, sollte die Version innerhalb von Abhängigkeiten 1.0.2 und 3.0.2 sein, dh wie folgt
quelle
Wenn Sie Android Studio 3.1. + Oder höher verwenden
Fügen Sie dies einfach in Ihre Gradle-Abhängigkeiten ein:
Insgesamt so:
quelle
Dies ist auf einen Versionskonflikt zurückzuführen. Um diesen zu lösen, erzwingen Sie einfach eine Aktualisierung Ihrer Support-Annotations-Version und fügen Sie diese Zeile in Ihr Modul ein: app gradle
implementation ('com.android.support:support-annotations:27.1.1')
Hoffe das löst dein Problem;)
Bearbeiten
Fast vergessen, können Sie eine einzelne zusätzliche Eigenschaft ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) für die Version deklarieren , zu Ihrer Projekt- (oder Ihrer obersten) Gradle-Datei gehen und Erklären Sie Ihre Unterstützung oder nur für dieses Beispiel die Anmerkungsversion var
ext.annotation_version = "27.1.1"
Dann ersetzen Sie es in Ihrem Modul gradle durch:
implementation ("com.android.support:support-annotations:$annotation_version")
Dies ist der @ emadabel-Lösung sehr ähnlich, die eine gute Alternative dafür darstellt, jedoch ohne den Block oder das
rootproject
Präfix.quelle
Das Hinzufügen zu build.gradle (Modul-App) hat bei mir funktioniert:
Kompilieren Sie 'com.android.support:support-annotations:27.1.1'
quelle
Mach dir keine Sorgen Es ist einfach:
Gehen Sie zur Verzeichnisstruktur "Projekt" und gehen Sie dort zu "Gradle Scripts" und gehen Sie darin zu "build.gradle (Module: app)" und doppelklicken Sie darauf.
Jetzt - Scrollen Sie im Programm nach unten und gehen Sie dazu zum Abschnitt Abhängigkeiten: Wie unten
Abhängigkeiten {
}}
Löschen Sie nun die letzten beiden Codezeilen und erstellen Sie die App neu. Jetzt funktioniert es
Die Abhängigkeiten sollten sein:
Abhängigkeiten {
}}
Bauen Sie die App wieder auf und es funktioniert!
quelle
Gehen Sie in Ihrem Projekt zur build.gradle (Modul-App):
Folgen Sie dem Bild und ändern Sie diese Version:
und wenn Android Studio Version 2: Ändern Sie die Zeile mit dieser Zeile:
sonst Ändern Sie die Zeile mit dieser Zeile:
und hoffentlich lösen Sie Ihren Fehler.
quelle
Fügen Sie dies Ihrer Gradle-Datei hinzu.
quelle
Eine andere einfache Möglichkeit, dieses Problem zu lösen, besteht darin, Ihre
build.gradle
(App) zu bearbeiten :android
Tag und wechseln SiecompileSdkVersion 26
zucompileSdkVersion 27
defaultConfig
Tag und wechseln SietargetSdkVersion 26
zutargetSdkVersion 27
dependencies
taggen und wechselnimplementation 'com.android.support:appcompat-v7:26.1.0'
zuimplementation 'com.android.support:appcompat-v7:27.1.1'
quelle
Ich habe das gleiche Problem, fügen Sie in build.gradle (Modul: App) die folgende Codezeile in Abhängigkeiten ein:
Es hat bei mir perfekt funktioniert
quelle
Wichtiges Update
Gehen Sie zu build.gradle auf Projektebene und definieren Sie globale Variablen
Gehen Sie zu build.gradle auf App-Ebene und verwenden Sie globale Variablen
App build.gradle
einige Bibliothek build.gradle
Die Lösung besteht darin, Ihre Versionen wie in allen Modulen zu gestalten. Damit Sie keine Konflikte haben.
Wichtige Tipps
Immer die neuesten, aber stabilen Versionen haben Instabile Versionen sind
alpha
,beta
undrc
ignorieren sie in der Entwicklung.Ich habe alles unten in meinen Projekten aktualisiert und sehe diese Fehler nicht mehr.
build.gradle
-classpath 'com.android.tools.build:gradle:3.2.0'
( Trackandroid.build.gradle
Release & dies )buildToolVersion
(Track buildToolVersion Release )compileSdkVersion
undtargetSdkVersion
Track-Plattform-VersionViel Spaß beim Codieren! :) :)
quelle
Wenn das Ändern der Ziel-SDK-Version nicht hilft,
3.0.2
ändern Sie sie in, wenn Sie eine Abhängigkeit von der Version haben3.0.1
.zB ändern
zu
quelle
Eine bessere Lösung wird in der offiziellen Erklärung erläutert . Ich habe die Antwort, die ich zuvor gegeben habe, unter der horizontalen Linie gelassen.
Nach der dortigen Lösung:
Verwenden Sie ein externes Tag und notieren Sie den folgenden Code in der Datei build.gradle der obersten Ebene . Sie werden die Version in eine Variable anstatt in eine statische Versionsnummer ändern.
Ändern Sie die statischen Versionsnummern in Ihrer build.gradle- Datei auf App-Ebene
(Module: app)
.Synchronisieren Sie Ihr Projekt und Sie erhalten keine Fehler.
Sie müssen Gradle-Skripten nichts hinzufügen. Installieren Sie die erforderlichen SDKs und das Problem wird behoben.
Installieren Sie in Ihrem Fall die folgenden Bibliotheken unter Einstellungen> Android SDK oder Extras> Android> SDK Manager
quelle
Fügen Sie diese Zeile unter den Abhängigkeiten in Ihrer Gradle-Datei hinzu
quelle