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.

105

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.

hashTag_bibu
quelle
Überprüfen Sie diese Frage: stackoverflow.com/q/43817004/9611523 . Hoffe es würde helfen.
1
Das Aktualisieren von Android Studio (sowie des Emulators und einiger anderer Dinge danach) löste dieses Problem für mich.
Das Problem ist auf einen Anmerkungsgrad zurückzuführen, der bei der Erstellung neuer Android Studio-Projekte nicht standardmäßig auftritt. Könnte
Ready Android

Antworten:

181

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

compile 'com.android.support:support-annotations:27.1.1'

und synchronisieren Sie Ihr Projekt

Hinweis: Wenn Sie Android Studio 3+ verwenden, wechseln Sie compilezuimplementation

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:

// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
    // The following are only a few examples of the types of properties you can define.
    compileSdkVersion = 26
    // You can also use this to specify versions for dependencies. Having consistent
    // versions between modules can avoid behavior conflicts.
    supportLibVersion = "27.1.1"
}

Um dann auf diesen Abschnitt zuzugreifen, ändern Sie die compileSdkVersionZeile in

compileSdkVersion rootProject.ext.compileSdkVersion

und dependenciesändern Sie im Abschnitt die importierte Bibliothek wie folgt:

compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

und synchronisieren Sie Ihr Projekt

Hinweis: Wenn Sie Android Studio 3+ verwenden, wechseln Sie compilezuimplementation

Für die Differenz zwischen compileund implementationBlick auf diese Was ist der Unterschied zwischen der Umsetzung und der Kompilierung in gradle ist

emadabel
quelle
4
Ich würde vorschlagen, 'Implementierung' anstelle von Kompilieren zu verwenden
SanVed
60

Fügen Sie die folgende Zeile in Ihre app.gradle-Datei ein, bevor Sie Abhängigkeiten blockieren.

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-annotations:26.1.0'
    }
}

Es gibt auch einen Screenshot unten zum besseren Verständnis.

Configurations.all block

  1. 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.

  2. 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.

Harter Jain
quelle
Danke, rette meine Zeit
Manikandan K
1
@ManikandanK gerne helfen!
Harsh Jain
Lob sei dir für die vollständigen Anweisungen! (So ​​viele Antworten zu diesem Thema sind wie "Add this:" force 'com.android.support:support-annotations:26.1.0' "mit wenig / keinem Kontext! (Leider bekomme ich immer noch das gleiche Build-Fehler, in meinem Fall "com.android.support:support-annotations:27.0.0 konnte nicht gefunden werden. Erforderlich von: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz
35

Wenn Sie Version 26 verwenden, sollte die Version innerhalb von Abhängigkeiten 1.0.1 und 3.0.1 sein, dh wie folgt

  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

Wenn Sie Version 27 verwenden, sollte die Version innerhalb von Abhängigkeiten 1.0.2 und 3.0.2 sein, dh wie folgt

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Harish
quelle
2
Gott segne dich, möge Android Bibliotheken unterstützen, die Rot in der Hölle versionieren!
Muhammad Naderi
Also erstellt der Android Studio-Assistent ein Projekt von Grund auf mit Fehlern? ¬¬
Sebastian Breit
Was ist mit 28 ?
Alizulfuqar
27

Wenn Sie Android Studio 3.1. + Oder höher verwenden

Fügen Sie dies einfach in Ihre Gradle-Abhängigkeiten ein:

implementation 'com.android.support:support-annotations:27.1.1'

Insgesamt so:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    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'

    implementation 'com.android.support:support-annotations:27.1.1'
}
Uray Febri
quelle
Vielen Dank Kumpel. Viel Liebe
Amilab
23

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 rootprojectPräfix.

desgraci
quelle
1
Dank desgraci hat mir die obige Lösung geholfen
BharathRao
Nachdem ich diese Zeile jetzt hinzugefügt habe, erhalte ich die Fehlermeldung "Fehler: Ausführung für Aufgabe 'fehlgeschlagen: app: processDebugManifest'.> Manifest-Zusammenführung mit mehreren Fehlern fehlgeschlagen, siehe Protokolle" Bitte helfen Sie mir, wie ich sie lösen kann
Basant
@ Basant Ich müsste sehen, was das Problem ist, da es ein Problem bei der Ausführung Ihres Gradle ist, wäre es besser, eine Frage dafür zu öffnen
desgraci
Entschuldigung für die späte Antwort @desgraci, ich habe dieses Problem durch ein Upgrade von IDE
Basant
@ Basant freut sich das zu hören!
Desgraci
9

Das Hinzufügen zu build.gradle (Modul-App) hat bei mir funktioniert:
Kompilieren Sie 'com.android.support:support-annotations:27.1.1'

Sanzhar Askaruly
quelle
7

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 {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
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'

}}


Löschen Sie nun die letzten beiden Codezeilen und erstellen Sie die App neu. Jetzt funktioniert es

Die Abhängigkeiten sollten sein:


Abhängigkeiten {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'

}}


Bauen Sie die App wieder auf und es funktioniert!

Manika Agrawal
quelle
Sie haben nicht erklärt, was Sie gelöscht / hinzugefügt haben. Was ist, wenn die Testbibliotheken hier benötigt werden?
TheRealChx101
3

Gehen Sie in Ihrem Projekt zur build.gradle (Modul-App):

Geben Sie hier die Bildbeschreibung ein

Folgen Sie dem Bild und ändern Sie diese Version:

compileSdkVersion: 27
targetSdkVersion: 27

und wenn Android Studio Version 2: Ändern Sie die Zeile mit dieser Zeile:

compile 'com.android.support:appcompat-v7:27.1.1'

sonst Ändern Sie die Zeile mit dieser Zeile:

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

und hoffentlich lösen Sie Ihren Fehler.

Maizied Hasan Shuvo
quelle
2

Fügen Sie dies Ihrer Gradle-Datei hinzu.

implementation 'com.android.support:support-annotations:27.1.1'
Jeffy
quelle
1

Eine andere einfache Möglichkeit, dieses Problem zu lösen, besteht darin, Ihre build.gradle(App) zu bearbeiten :

  1. Gehen Sie zu androidTag und wechseln Sie compileSdkVersion 26zucompileSdkVersion 27
  2. Gehen Sie zu defaultConfigTag und wechseln Sie targetSdkVersion 26zutargetSdkVersion 27
  3. Ich muss dependenciestaggen und wechseln implementation 'com.android.support:appcompat-v7:26.1.0'zuimplementation 'com.android.support:appcompat-v7:27.1.1'
Realdinho
quelle
1

Ich habe das gleiche Problem, fügen Sie in build.gradle (Modul: App) die folgende Codezeile in Abhängigkeiten ein:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Es hat bei mir perfekt funktioniert

Mohammed H. Hannoush
quelle
1

Wichtiges Update

Gehen Sie zu build.gradle auf Projektebene und definieren Sie globale Variablen

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlinVersion = '1.2.61'

    ext.global_minSdkVersion = 16
    ext.global_targetSdkVersion = 28
    ext.global_buildToolsVersion = '28.0.1'
    ext.global_supportLibVersion = '27.1.1'
}

Gehen Sie zu build.gradle auf App-Ebene und verwenden Sie globale Variablen

App build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

einige Bibliothek build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

Die Lösung besteht darin, Ihre Versionen wie in allen Modulen zu gestalten. Damit Sie keine Konflikte haben.

Wichtige Tipps

Ich hatte das Gefühl, wenn ich Versionen von All-Gradle, SDKS, Bibliotheken usw. aktualisiert habe, habe ich weniger Fehler. Weil Entwickler hart daran arbeiten, die Entwicklung unter Android Studio zu vereinfachen.

Immer die neuesten, aber stabilen Versionen haben Instabile Versionen sind alpha, betaundrc ignorieren sie in der Entwicklung.

Ich habe alles unten in meinen Projekten aktualisiert und sehe diese Fehler nicht mehr.

Viel Spaß beim Codieren! :) :)

Khemraj
quelle
0

Wenn das Ändern der Ziel-SDK-Version nicht hilft, 3.0.2ändern Sie sie in, wenn Sie eine Abhängigkeit von der Version haben 3.0.1.

zB ändern

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

zu

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'
Harshad
quelle
0

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.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Ändern Sie die statischen Versionsnummern in Ihrer build.gradle- Datei auf App-Ebene (Module: app).

android {
    compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
    // the below lines will stay
}

// here there are some other stuff maybe

dependencies {
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    // the below lines will stay
}

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

Geben Sie hier die Bildbeschreibung ein

Onur Thunfisch
quelle
0

Fügen Sie diese Zeile unter den Abhängigkeiten in Ihrer Gradle-Datei hinzu

compile 'com.android.support:support-annotations:27.1.1'
Pavitha
quelle