Saya mencoba membuat aplikasi di Android Studio. Setelah menambahkan pustaka Eclipse Paho sebagai dependensi gradle (atau apakah itu Maven? Saya baru mengenal ekosistem Android), saya mendapat kesalahan berikut:
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)}
Saya telah memeriksa banyak pertanyaan StackOverflow berbeda yang berkaitan dengan kesalahan ini, tetapi jawabannya semuanya khusus untuk pustaka tertentu. Saya mencari tidak hanya untuk solusi untuk kesalahan, tetapi memahami apa kesalahan berarti . Dengan begitu, orang-orang akan lebih mudah menemukan solusi untuk kasus spesifik mereka. Sejauh ini, belum ada jawaban yang memberikan itu.
Dari jawaban StackOverflow lainnya, saya telah menyimpulkan bahwa itu ada hubungannya dengan file gradle saya. Jadi, inilah 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/' }
}
sumber
Bagi saya, membersihkan proyek saja sudah menyelesaikan masalah
Menggunakan Terminal :
Menggunakan Android Studio :
sumber
Build > Clean Project
.File > Invalidate Caches / Restart > Invalidate and restart
dapat memperbaiki masalah jugaDari Dok resmi
Jika sebuah kelas muncul lebih dari sekali di classpath waktu proses, Anda akan mendapatkan error yang mirip dengan berikut:
Program type already present com.example.MyClass
Kesalahan ini biasanya terjadi karena salah satu dari keadaan berikut:
Dependensi biner menyertakan pustaka yang juga disertakan aplikasi Anda sebagai dependensi langsung.
Misalnya, aplikasi Anda mendeklarasikan dependensi langsung pada Library A dan Library B, tetapi Library A sudah menyertakan Library B dalam binernya. Untuk mengatasi masalah ini, hapus Library B sebagai dependensi langsung.
Aplikasi Anda memiliki ketergantungan biner lokal dan ketergantungan biner jarak jauh di perpustakaan yang sama.
Untuk mengatasi masalah ini, hapus salah satu dependensi biner. (Lihat apakah perpustakaan yang sama ditambahkan sebagai ketergantungan jar dan gradle)
sumber
Itu juga terjadi pada saya, tetapi dalam kasus saya, saya mencoba menyertakan dependensi berbeda yang memiliki kelas yang sama menggunakan
debugApi
&Api
jadi Android Studio ditandai sebagai kelas duplikat, jadi saya menyelesaikan masalah dengan menggunakandebugApi
&releaseApi
untuk menyertakan dependensi yang berbeda berdasarkan varian build.sumber
Tambahkan pustaka Dukungan ke file Gradle tingkat aplikasi
sumber
Dalam kasus saya itu berarti saya memiliki 2 file * .jar atau 2 perpustakaan di beberapa tempat dalam kode sumber. Sebagai contoh: Saya memiliki 2
youtube.jar
diapp/libary
danmodule/libary
Hapus redundan sekali dan itu akan baik-baik sajasumber
Masalah untuk masalah ini - Jika Anda menggunakan pustaka sebagai modul & pustaka yang sama sebagai ketergantungan di pustaka lain.
Contoh: LibraryA diimpor sebagai Module & LibraryA yang sama ditambahkan sebagai dependensi di modul library lainnya.
Bagaimana cara memperbaiki masalah ini?
Solusi 1 -> jika Anda ingin menyimpan keduanya -> Cukup refactor nama paket modul LibraryA
Solusi 2 -> hapus ketergantungan LibraryA dan gunakan modul
sumber
Saya harap ini membantu seseorang, Proyek Build> Clean berhasil untuk saya.
sumber