J'essaie de créer une application dans Android Studio. Après avoir ajouté la bibliothèque Eclipse Paho en tant que dépendance gradle (ou est-ce Maven? Je suis nouveau dans l'écosystème Android), j'ai l'erreur suivante:
Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
Message{kind=ERROR, text=Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat, sources=[Unknown source file], tool name=Optional.of(D8)}
J'ai vérifié de nombreuses questions StackOverflow relatives à cette erreur, mais les réponses sont toutes spécifiques à certaines bibliothèques. Je cherche non seulement une solution à l'erreur, mais une compréhension de ce que signifie l'erreur . De cette façon, il sera plus facile pour les gens de trouver des solutions pour leurs cas spécifiques. Jusqu'à présent, aucune réponse n'a fourni cela.
À partir d'autres réponses StackOverflow, j'ai compris que cela avait quelque chose à voir avec mon fichier gradle. Alors, voici app / build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "---REDACTED FOR PRIVACY---"
minSdkVersion 15
targetSdkVersion 27
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:support-media-compat:27.1.0'
implementation 'com.android.support:support-v13:27.1.0'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
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.android.support.constraint:constraint-layout:1.0.2'
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'
}
repositories {
maven { url 'https://repo.eclipse.org/content/repositories/paho-releases/' }
}
la source
Pour moi juste nettoyer du projet a résolu le problème
Utilisation du terminal :
Utilisation d' Android Studio :
la source
Build > Clean Project
.File > Invalidate Caches / Restart > Invalidate and restart
peut également résoudre le problèmeDu document officiel
Si une classe apparaît plus d'une fois sur le chemin de classe d'exécution, vous obtenez une erreur similaire à la suivante:
Program type already present com.example.MyClass
Cette erreur se produit généralement en raison de l'une des circonstances suivantes:
Une dépendance binaire comprend une bibliothèque que votre application inclut également en tant que dépendance directe.
Par exemple, votre application déclare une dépendance directe sur la bibliothèque A et la bibliothèque B, mais la bibliothèque A inclut déjà la bibliothèque B dans son binaire. Pour résoudre ce problème, supprimez la bibliothèque B en tant que dépendance directe.
Votre application a une dépendance binaire locale et une dépendance binaire distante sur la même bibliothèque.
Pour résoudre ce problème, supprimez l'une des dépendances binaires. (Voir si la même bibliothèque est ajoutée en tant que dépendance jar et gradle)
la source
Cela m'est également arrivé, mais dans mon cas, j'essaie d'inclure différentes dépendances qui ont la même classe en utilisant
debugApi
&Api
donc Android Studio marqué comme classe en double, donc j'ai résolu le problème en utilisantdebugApi
&releaseApi
pour inclure différentes dépendances basées sur la variante de construction.la source
Ajouter la bibliothèque de support au fichier Gradle au niveau de l'application
la source
Dans mon cas, cela signifie que j'ai 2 fichiers * .jar ou 2 bibliothèques quelque part dans le code source. Par exemple: j'ai 2
youtube.jar
dansapp/libary
etmodule/libary
Suppr redondant une fois et ce sera bienla source
J'espère que cela aide quelqu'un, un projet Build> Clean a fonctionné pour moi.
la source
Problème pour ce problème - Si vous utilisez la bibliothèque comme module et même bibliothèque comme dépendance dans une autre bibliothèque.
Exemple: LibraryA importé en tant que module et même LibraryA ajouté en tant que dépendance dans tout autre module de bibliothèque.
Comment résoudre ce problème?
Solution 1 -> si vous souhaitez conserver les deux -> Refactorisez simplement le nom du package du module LibraryA
Solution 2 -> supprimer la dépendance LibraryA et utiliser le module
la source