Ich versuche eine App in Android Studio zu erstellen. Nach dem Hinzufügen der Eclipse Paho-Bibliothek als Gradle-Abhängigkeit (oder ist es Maven? Ich bin neu im Android-Ökosystem) wurde der folgende Fehler angezeigt:
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)}
Ich habe viele verschiedene StackOverflow-Fragen zu diesem Fehler geprüft, aber die Antworten sind alle spezifisch für bestimmte Bibliotheken. Ich suche nicht nur nach einer Lösung für den Fehler, sondern auch nach einem Verständnis dessen, was der Fehler bedeutet . Auf diese Weise können die Menschen leichter Lösungen für ihre speziellen Fälle finden. Bisher hat dies keine Antwort geliefert.
Aus anderen StackOverflow-Antworten habe ich herausgefunden, dass dies etwas mit meiner Gradle-Datei zu tun hat. Also, hier ist 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/' }
}
quelle
Für mich löste das Reinigen des Projekts das Problem
Mit Klemme :
Verwenden von Android Studio :
quelle
Build > Clean Project
.File > Invalidate Caches / Restart > Invalidate and restart
kann das Problem ebenfallsAus dem offiziellen Doc
Wenn eine Klasse mehr als einmal im Laufzeitklassenpfad angezeigt wird, wird ein Fehler angezeigt, der dem folgenden ähnelt:
Program type already present com.example.MyClass
Dieser Fehler tritt normalerweise aufgrund eines der folgenden Umstände auf:
Eine binäre Abhängigkeit enthält eine Bibliothek, die Ihre App auch als direkte Abhängigkeit enthält.
Beispielsweise deklariert Ihre App eine direkte Abhängigkeit von Bibliothek A und Bibliothek B, aber Bibliothek A enthält Bibliothek B bereits in ihrer Binärdatei. Entfernen Sie Bibliothek B als direkte Abhängigkeit, um dieses Problem zu beheben.
Ihre App hat eine lokale binäre Abhängigkeit und eine entfernte binäre Abhängigkeit von derselben Bibliothek.
Entfernen Sie eine der binären Abhängigkeiten, um dieses Problem zu beheben. (Überprüfen Sie, ob dieselbe Bibliothek als JAR- und Gradle-Abhängigkeit hinzugefügt wurde.)
quelle
Es ist auch mir passiert ist, aber in meinem Fall, ich versuche , verschiedene Abhängigkeiten enthalten , die gleiche Klasse haben mit
debugApi
&Api
so Android Studio als doppelte Klasse markiert, so dass ich das Problem gelöst , indem SiedebugApi
&releaseApi
verschiedenen Abhängigkeiten sind auf der Build - Variante basiert.quelle
Fügen Sie die Support-Bibliothek zur Gradle-Datei auf App-Ebene hinzu
quelle
In meinem Fall bedeutet dies, dass ich 2 * .jar-Dateien oder 2 Bibliotheken habe, von denen einige im Quellcode enthalten sind. Zum Beispiel: Ich habe 2
youtube.jar
inapp/libary
undmodule/libary
lösche die redundante einmal und es wird in Ordnung seinquelle
Ich hoffe es hilft jemandem, ein Build> Clean Projekt hat für mich funktioniert.
quelle
Problem für dieses Problem - Wenn Sie die Bibliothek als Modul und dieselbe Bibliothek als Abhängigkeit in einer anderen Bibliothek verwenden.
Beispiel: LibraryA als Modul & gleiche LibraryA importiert als Abhängigkeit in einem anderen Bibliotheksmodul hinzugefügt.
Wie kann ich dieses Problem beheben?
Lösung 1 -> wenn Sie beide behalten möchten -> Überarbeiten Sie einfach den Paketnamen des LibraryA- Moduls
Lösung 2 -> Entfernen Sie die LibraryA- Abhängigkeit und verwenden Sie das Modul
quelle