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?
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.
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'
}
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'
...
}
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'
})
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'
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.
Ajouter
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:2.0.1'
}
dans votre fichier build.gradle
dans Android {...}
Terminal ouvert dans un studio Android
exécuter la commande ./gradlew -q app:dependencies
.
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.
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'
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.
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) :).
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'
})
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'
}
}
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}
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'
}
}
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'
}
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 .