Saya telah bertemu kesalahan seperti itu ketika saya menggunakan Android studio 3.1 untuk membangun aplikasi Android P, apk dapat dibuat, tetapi ketika saya menggunakannya pada Android P emulator, itu akan crash dan melempar info di bawah, lebih jelasnya lihat gambar .
java.lang.NoClassDefFoundError: resolusi gagal: Lorg / apache / http / ProtocolVersion
bagian dari build.gradle saya di bawah modul App di bawah ini, ada yang memenuhi ini? Dan memberikan saran? Terimakasih banyak.
android {
compileSdkVersion 'android-P'
buildToolsVersion '28-rc1'
useLibrary 'org.apache.http.legacy'
//for Lambda
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
applicationId "xxx.xxx.xxx"
minSdkVersion 17
targetSdkVersion 27
versionCode xxxx
versionName "Vx.x.x"
multiDexEnabled true
//other setting required
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a', 'x86', 'x86_64', 'mips', 'mips64'
}
Tautan ini android-9.0-changes-28 -> Penghentian klien Apache HTTP menjelaskan alasan untuk menambahkan yang berikut ke AndroidManifest.xml Anda:
sumber
Lakukan salah satu dari yang berikut:
1- Perbarui perpustakaan main-layanan-peta ke versi terbaru:
2- Atau sertakan deklarasi berikut dalam
<application>
elemenAndroidManifest.xml
.sumber
Jika Anda menggunakan Android 9.0 dengan stoples lama dari yang harus Anda gunakan. dalam file mainfest Anda.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
sumber
Untuk menjalankan org.apache.http.legacy dengan sempurna di Android 9.0 Pie buat file xml
res/xml/network_security_config.xml
Dan tambahkan 2 tag tag di AndroidManifest.xml Anda
Tambahkan juga
useLibrary 'org.apache.http.legacy'
gradasi build aplikasi Andasumber
sumber
Ini juga dilaporkan di pelacak bug Android: https://issuetracker.google.com/issues/79478779
sumber
Jika Anda menggunakan
com.google.android.gms:play-services-maps:16.0.0
atau di bawah dan aplikasi Anda menargetkan API level 28 (Android 9.0) atau lebih tinggi, Anda harus menyertakan deklarasi berikut dalam elemen AndroidManifest.xmlPeriksa tautan ini - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
sumber
Jika Anda menggunakan com.google.android.gms: play-services-maps: 16.0.0 atau lebih rendah dan aplikasi Anda menargetkan API level 28 (Android 9.0) atau lebih tinggi, Anda harus menyertakan deklarasi berikut dalam elemen AndroidManifest. xml.
Ini ditangani untuk Anda jika Anda menggunakan com.google.android.gms: play-services-maps: 16.1.0 dan tidak perlu jika aplikasi Anda menargetkan tingkat API yang lebih rendah.
sumber
Sebagai reaksi asli, saya memiliki kesalahan tidak menampilkan peta dan menutup aplikasi, menjalankan adb logcat dan menampilkan kesalahan dalam konsol:
memperbaikinya dengan menambahkan dalam androidManifest.xml
sumber
Menurut jawaban SO ini , hal itu terjadi karena bug AWS SDK yang muncul harus diselesaikan dalam versi 2.6.30 dari SDK , sehingga memperbarui versi ke yang lebih baru, dapat membantu Anda memperbaiki masalah.
sumber