it-swarm.com.de

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.

Ich bin neu in der Android App-Entwicklung. Als ich versuchte, ein neues Projekt, Android Project, zu erstellen, wurde die folgende Meldung angezeigt.

Fehler: Ausführung fehlgeschlagen für Task ': app: preDebugAndroidTestBuild'.

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. Siehe https://d.Android.com/r/tools/test-apk-dependency-conflicts.html für Details . Information: Gradle Aufgaben

Dies ist der Screenshot meines Projekts Klicken Sie hier, um einen Screenshot des Fehlers zu sehen, den ich bekam

ich habe auch versucht, diesen Code zu meiner Abhängigkeit hinzuzufügen. Ich habe auch 27.1.1 und 26.1.0 ausprobiert ... das hat auch nicht geklappt.

79
bibash acharya

Basierend auf Ihrem Screenshot habe ich zwei funktionierende Lösungen gefunden:

Erste Lösung: Ergänzen Sie diese Zeile um Abhängigkeiten Ihres Gradle-Moduls

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

und synchronisieren Sie Ihr Projekt

Hinweis: Wenn Sie Android Studio 3+ verwenden, ändern Sie compile in implementation.

Zweite Lösung: Konfigurieren Sie projektweite Eigenschaften aus der Dokumentation https://developer.Android.com/studio/build/gradle-tips.html#configure-project-wide-properties

fügen Sie in Projekt Gradle 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 auf diesen Abschnitt zuzugreifen, ändern Sie compileSdkVersionline

compileSdkVersion rootProject.ext.compileSdkVersion

und im Abschnitt dependencies ändern Sie die importierte Bibliothek folgendermaßen:

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

und synchronisieren Sie Ihr Projekt

Hinweis: Wenn Sie Android Studio 3+ verwenden, ändern Sie compile in implementation.

Für den Unterschied zwischen compile und implementation schauen Sie sich das an Was ist der Unterschied zwischen Implementierung und Kompilierung in Gradle

161
emadabel

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

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

Es gibt auch einen Screenshot zum besseren Verständnis.

 Configurations.all block

  1. der Block changes.all wird nur hilfreich sein, wenn das Ziel-SDK auf 26 gesetzt werden soll. Wenn Sie es auf 27 ändern können, wird der Fehler behoben, ohne dass der Konfigurationsblock in der Datei app.gradle hinzugefügt wird.

  2. Es gibt 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 targetsk ändern.

Hoffentlich hilft das.

44
Harsh Jain

Dies ist auf einen Versionskonflikt zurückzuführen. Um diesen zu lösen, müssen Sie lediglich ein Update Ihrer Support-Annotations-Version erzwingen und Ihrem Modul die folgende Zeile hinzufügen: 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 und zu Ihrem Projekt gehen (oder Ihre top) gradle-Datei, und erklären Sie Ihre Unterstützung, oder nur für dieses Beispiel, Annotation Version 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 @ madabel-Lösung sehr ähnlich, die eine gute Alternative ist, jedoch ohne den Block oder das rootproject -Präfix.

23
desgraci

Wenn Sie die Version 26 verwenden, sollte die Version von 1.0.1 und 3.0.1 die folgenden Abhängigkeiten sein

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

Wenn Sie die Version 27 verwenden, sollte die Version von 1.0.2 und 3.0.2 die folgenden Abhängigkeiten sein

  androidTestImplementation 'com.Android.support.test:runner:1.0.2'
  androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
23
Harish

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

füge dies einfach in deine 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'
}
23
Uray Febri

Das Hinzufügen zu build.gradle (Modul-App) hat für mich funktioniert:
compile 'com.Android.support:support-annotations:27.1.1' 

9

Mach dir keine Sorgen Es ist einfach:

Gehe zur Verzeichnisstruktur "Project" und dort zu "Gradle Scripts" und dort "build.gradle (Module: app)" und doppelklicke darauf.

Nun - Scrollen Sie durch das Programm und gehen Sie in den Abhängigkeitsbereich: 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'

}


Jetzt lösche die letzten beiden Codezeilen und baue die App neu auf und jetzt wird es funktionieren

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 neu auf und es funktioniert !!  

5
Manika Agrawal

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

 enter image description here

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'

else Ändern Sie die Zeile mit dieser Zeile:

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

und hoffentlich lösen Sie Ihren Fehler.

3

Fügen Sie dies Ihrer gradle-Datei hinzu.

implementation 'com.Android.support:support-annotations:27.1.1'
1
Jeffy

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

  1. Gehen Sie zum Tag Android und ändern Sie compileSdkVersion 26 in compileSdkVersion 27.
  2. Gehen Sie zum Tag defaultConfig und ändern Sie targetSdkVersion 26 in targetSdkVersion 27.
  3. dependencies-Tag muss geändert und implementation 'com.Android.support:appcompat-v7:26.1.0' in implementation 'com.Android.support:appcompat-v7:27.1.1' geändert werden
1
Realdo Dias

Wichtiges Update

Gehen Sie zur Projektebene build.gradle 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 zur Anwendungsebene build.gradle 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, dass Ihre Versionen die gleichen sind wie in allen Modulen. Damit Sie keine Konflikte haben.

Wichtige tipps

Ich habe gespürt, wenn ich Versionen von allem, was ist, sdks, Bibliotheken usw. dann sehe ich weniger Fehler. Weil Entwickler arbeiten schwer, die Entwicklung auf Android Studio zu vereinfachen.

Stets aktuelle, aber stabile Versionen haben Unstabile Versionen sind alpha, beta und rc, ignorieren sie beim Entwickeln. 

Ich habe alles in meinen Projekten aktualisiert und stößt nicht mehr auf diese Fehler.

Viel Spaß beim Codieren! :)

1
Khemraj

Ich habe das gleiche Problem in build.gradle (Module: app) Fügen Sie die folgende Codezeile in Abhängigkeiten hinzu:

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

Es hat perfekt für mich funktioniert 

Fügen Sie diese Zeile unter den Abhängigkeiten in Ihrer Abstufungsdatei hinzu

compile 'com.Android.support:support-annotations:27.1.1'
0
Pavitha

Wenn das Ändern der Ziel-SDK-Version nicht hilfreich ist, ändern Sie die Version in 3.0.2 und ändern Sie diese in 3.0.1.

z.B. ändern

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

zu

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

Eine bessere Lösung wird in der offiziellen Erklärung erklärt. Ich habe die Antwort, die ich zuvor gegeben habe, unter der horizontalen Linie gelassen.

Entsprechend der Lösung dort:

Verwenden Sie ein externes Tag, und notieren Sie sich den folgenden Code in der obersten Datei build.gradle. Sie ändern die Version in eine Variable und nicht in eine statische Versionsnummer.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Ändern Sie die statischen Versionsnummern in Ihrer build.gradle -Datei auf App-Ebene. In der Nähe befindet sich (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 den Gradle-Skripts nichts hinzufügen. Installieren Sie die erforderlichen SDKs und das Problem wird gelöst.

Installieren Sie in Ihrem Fall die folgenden Bibliotheken unter Preferences> Android SDK oder Tools> Android> SDK Manager.

 enter image description here

0
Onur Tuna