web-dev-qa-db-fra.com

Erreur: conflit avec la dépendance "com.google.code.findbugs: jsr305"

J'ai créé un nouveau projet dans Android Studio 2.2 Preview 1 avec l'application Android et le module Backend avec Google Messaging. Ceci est le fichier d'application:

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')
}

Mais c'est donner:

Erreur: conflit avec la dépendance "com.google.code.findbugs: jsr305". Les versions résolues pour app (1.3.9) et test app (2.0.1) diffèrent. Voir http://g.co/androidstudio/app-test-app-conflict pour plus de détails.

Je suis nouveau sur Android et incapable de trouver quelle est cette erreur. Comment je le répare?

221
Rahul Garg

Dans le build.gradle de votre application, ajoutez les éléments suivants:

Android {
    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
    }
}

Force Gradle à ne compiler que le numéro de version indiqué pour toutes les dépendances, quel que soit le numéro de version indiqué par les dépendances. 

601
gbhall

Cela est dû à l'espresso. Vous pouvez ajouter les éléments suivants à votre application build.grade pour atténuer ce problème.

androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2') {
  exclude group: 'com.google.code.findbugs'
}
163
Santhosh

MÉTHODE 1: J'ai supprimé l'androidTestCompile sur la ligne espresso-core qui était automatiquement incluse dans un nouveau projet. Ensuite, mon Android Studio compile propre.

AndroidTestCompile est dans "build.gradle (Module: app)":

dependencies {
    ...
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    ...
}

Je ne sais pas si cette suppression posera problème à l'avenir, mais cela fonctionne sûrement pour mon projet actuel maintenant.

METHODE 2: Ajouter une exclusion sur findbugs fonctionne aussi:

dependencies {
    ...
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
        exclude group: 'com.google.code.findbugs'
    })
    ...
}

METHODE 3: Forcer la compilation avec une version spécifique:

(Dans la suite, je le force à compiler avec la version supérieure.)

dependencies {
    ...
    androidTestCompile 'com.google.code.findbugs:jsr305:3.0.0'
    ...
}
29
Liwen Zhao

Lorsque j'ai ajouté module: 'jsr305' en tant qu'instruction d'exclusion supplémentaire, tout s'est bien passé pour moi.

 androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
exclude module: 'jsr305'

})

7
Wahib Ul Haq

Le problème, comme indiqué dans vos journaux, est 2 dépendances essayant d'utiliser différentes versions de la 3ème dépendance. Ajoutez l’un des éléments suivants au fichier app-gradle:

androidTestCompile 'com.google.code.findbugs:jsr305:2.0.1'
androidTestCompile 'com.google.code.findbugs:jsr305:1.3.9'
6
nbtk

La raison en est que les dépendances diff utilisent la même lib de la version diff.
Donc, il y a 3 étapes ou (1 étape) pour résoudre ce problème. 

1er

Ajouter

configurations.all {
    resolutionStrategy.force 'com.google.code.findbugs:jsr305:2.0.1'
}

dans votre fichier build.gradle dans Android {...} 

2ème

Terminal ouvert dans un studio Android
exécuter la commande ./gradlew -q app:dependencies

3ème

Cliquez sur Clean Project dans la barre de menus du studio Android dans la liste Build.
Il reconstruira le projet, puis le code remove à la 1ère étape.

Peut-être avez-vous besoin juste de la 2e étape Je ne peux pas revenir en arrière quand une erreur se produit . Essayez.

6
ElliotCui

Ajoutez ceci aux dépendances pour forcer l'utilisation de la dernière version de la bibliothèque findbugs:

compile 'com.google.code.findbugs:jsr305:2.0.1'
3
Ayman Al-Absi
  1. La réponse acceptée est un moyen de résoudre le problème car elle appliquera une stratégie pour la dépendance problématique (com.google.code.findbugs: jsr305) et résoudra le problème lié au projet en utilisant une version de cette dépendance. Fondamentalement, il alignera les versions de cette bibliothèque dans l'ensemble du projet.

  2. Il existe une réponse de @Santhosh (et de quelques autres personnes) qui suggère d'exclure la même dépendance pour l'espresso, ce qui devrait fonctionner de la même manière, mais si le projet comporte d'autres dépendances qui dépendent de la même bibliothèque (com.google .code.findbugs: jsr305), nous aurons à nouveau le même problème. Donc, pour utiliser cette approche, vous devrez exclure le même groupe de toutes les dépendances du projet, qui dépendent de com.google.code.findbugs: jsr305. J'ai personnellement constaté que Espresso Contrib et Espresso Intents utilisent également com.google.code.findbugs: jsr305.

J'espère que ces réflexions aideront quelqu'un à comprendre ce qui se passe exactement ici et comment les choses fonctionnent (pas seulement copier-coller du code) :).

3
Sniper

supprimer les dépendances espresso dans le fichier Gradle fonctionne pour moi.

supprimer ces lignes dans le fichier de classement de l'application:

androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.Android.support', module: 'support-annotations'
})
2
Kai Wang

Dans le projet ': app', vous pouvez ajouter les éléments suivants à votre fichier app/build.gradle:

Android {
 configurations.all {
    resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
 }
 }
0
Diya Bhat

Pour react-native-firebase, l'ajout de ceci à la section app/build.gradle dependencies l'a fait fonctionner pour moi:

implementation('com.squareup.okhttp3:okhttp:3.12.1') { force = true }
implementation('com.squareup.okio:okio:1.15.0') { force = true }
implementation('com.google.code.findbugs:jsr305:3.0.2') { force = true}
0
Indivision Dev

NATIF REACT

Si vous recherchez une solution native, écrivez cet extrait dans le fichier de construction de votre module node_modules affecté, par exemple, firebase dans mon cas.

Android {
    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.0'
    }
}
0
Faisal Hassan

j'essayais d'utiliser Airbnb Deeplink dispatch et j'ai eu cette erreur. Je devais également exclure le groupe findbugs de l'annotationProcessor. 

//airBnb
    compile ('com.airbnb:deeplinkdispatch:3.1.1'){
        exclude group:'com.google.code.findbugs'
    }
    annotationProcessor ('com.airbnb:deeplinkdispatch-processor:3.1.1'){
        exclude group:'com.google.code.findbugs'
    }
0
j2emanue

Ceux qui obtiennent la même erreur dans Android 3.0.1 peuvent le résoudre simplement en mettant à jour les versions de compileSdkVersion et targetSdkVersion sur 27 et implémentent également com.Android.support:appcompat-v7 : 27.1.1 'dans dépendances .

0
Arjun