web-dev-qa-db-fra.com

Erreur: type de programme déjà présent: com.google.common.annotations.Beta

Depuis que mon studio Android a été mis à jour il y a quelques jours, j'ai du mal à relancer mon application à cause de cette erreur.

Program type already present: com.google.common.annotations.Beta    
Message{kind=ERROR, text=Program type already present: 
com.google.common.annotations.Beta, sources=[Unknown source file], tool name=Optional.of(D8)}

Voici mon build.gradle: 

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.dissertation.bitcoin.bitparking"
    minSdkVersion 21
    targetSdkVersion 27
    multiDexEnabled true
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
   }
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation('com.Android.support:appcompat-v7:27.1.0')
implementation 'com.Android.support:design:27.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.google.http-client:google-http-client-Android:1.23.0'
implementation 'com.google.api-client:google-api-client-Android:1.23.0'
implementation 'com.google.code.findbugs:jsr305:2.0.1'
implementation 'com.google.api-client:google-api-client-gson:1.23.0'
implementation 'com.googlecode.json-simple:json-simple:1.1'
implementation files('libs/Java-json.jar')
implementation 'com.Android.support:support-compat:27.1.0'
implementation 'com.github.bumptech.glide:glide:4.3.1'
implementation 'com.Android.support:multidex:1.0.3'
implementation 'com.google:bitcoinj:0.11.3'
implementation 'de.schildbach.wallet:integration-Android:2.0'
}

Ce code fonctionnait bien pour moi la semaine dernière. Cependant, comme je suis assez nouveau dans le développement Android, j'ai peut-être oublié quelque chose. Toute aide serait appréciée, merci.

4
Peter Barnes

Essayez simplement d’ajouter exclude module: 'guava-jdk5' à google apis imports comme ceci:

implementation('com.google.api-client:google-api-client-Android:1.20.0') {
    exclude module: 'guava-jdk5'
}
13
Paul Grynyk

Si tout échoue, essayez:

[app/build.gradle]

configurations {
    all*.exclude module: 'guava-jdk5' 
}
2
Mickey Mouse

En ce qui concerne mon cas, j'utilise google-api-services-tasks et google-api-client-Android. En vérifiant les dépendances, j'ai remarqué qu'ils utilisaient tous les deux google-api-client.

./gradlew app:dependencies

...
+--- com.google.api-client:google-api-client-Android:1.23.0
|    +--- com.google.api-client:google-api-client:1.23.0
|    |    +--- com.google.oauth-client:google-oauth-client:1.23.0
|    |    |    +--- com.google.http-client:google-http-client:1.23.0
|    |    |    |    +--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
|    |    |    |    \--- org.Apache.httpcomponents:httpclient:4.0.1
|    |    |    |         +--- org.Apache.httpcomponents:httpcore:4.0.1
|    |    |    |         +--- commons-logging:commons-logging:1.1.1
|    |    |    |         \--- commons-codec:commons-codec:1.3
|    |    |    \--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
|    |    +--- com.google.http-client:google-http-client-jackson2:1.23.0
|    |    |    +--- com.google.http-client:google-http-client:1.23.0 (*)
|    |    |    \--- com.fasterxml.jackson.core:jackson-core:2.1.3
|    |    \--- com.google.guava:guava-jdk5:17.0
|    \--- com.google.http-client:google-http-client-Android:1.23.0
|         \--- com.google.http-client:google-http-client:1.23.0 (*)
+--- com.google.apis:google-api-services-tasks:v1-rev52-1.23.0
|    \--- com.google.api-client:google-api-client:1.23.0 (*)

Une fois que j'ai exclu guava-jdk5 des deux, le message d'erreur a disparu.

[app/build.gradle]

implementation('com.google.api-client:google-api-client-Android:1.23.0') {
    exclude module: 'guava-jdk5'
}
implementation('com.google.apis:google-api-services-tasks:v1-rev52-1.23.0') {
    exclude module: 'guava-jdk5'
}
2
solamour

Changer les graduations en ceci:

implementation 'com.google.apis:google-api-services-vision:v1-rev369-1.23.0'  exclude module: 'guava-jdk5'
    implementation 'com.google.api-client:google-api-client-Android:1.23.0' exclude module: 'guava-jdk5' exclude module: 'httpclient'
    implementation 'com.google.http-client:google-http-client-gson:1.23.0' exclude module: 'httpclient'

Cela a fonctionné pour moi

1
The Tech Gig

Si vous utilisez également Kotlin dans votre projet, supprimez "Kapt 'com.Android.databinding: compiler" de votre build.gradle (module d'application).

0
Bunty Rupela