Me encontré con ese error cuando uso Android Studio 3.1 para compilar una aplicación de Android P, se puede hacer el apk, pero cuando lo uso en el emulador de Android P, se bloqueará y arrojará la siguiente información, más detalles ver la foto .
java.lang.NoClassDefFoundError: resolución fallida de: Lorg / apache / http / ProtocolVersion
parte de mi build.gradle en el módulo de la aplicación está debajo, ¿alguien cumple con esto? ¿Y dar alguna sugerencia? Muchas gracias.
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'
}
Este enlace android-9.0-changes-28 -> La desaprobación del cliente HTTP Apache explica la razón para agregar lo siguiente a su AndroidManifest.xml:
fuente
Haga cualquiera de lo siguiente:
1- Actualiza la biblioteca play-services-maps a la última versión:
2- O incluya la siguiente declaración dentro del
<application>
elemento deAndroidManifest.xml
.fuente
Si usa Android 9.0 con jar heredado, debe usarlo. en tu archivo mainfest.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
fuente
Para ejecutar org.apache.http.legacy perfectamente en Android 9.0 Pie, cree un archivo xml
res/xml/network_security_config.xml
Y agregue 2 etiquetas en su AndroidManifest.xml
También agregue
useLibrary 'org.apache.http.legacy'
en su aplicación construir gradlefuente
fuente
También se informa en el rastreador de errores de Android: https://issuetracker.google.com/issues/79478779
fuente
Si está utilizando
com.google.android.gms:play-services-maps:16.0.0
o por debajo y su aplicación está dirigida al nivel de API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del elemento de AndroidManifest.xmlConsulte este enlace: https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
fuente
Si está utilizando com.google.android.gms: play-services-maps: 16.0.0 o inferior y su aplicación está orientada al nivel de API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del elemento de AndroidManifest. xml.
Esto se maneja por usted si está usando com.google.android.gms: play-services-maps: 16.1.0 y no es necesario si su aplicación está dirigida a un nivel API más bajo.
fuente
En reaccionar nativo, tuve el error de no mostrar mapas y cerrar la aplicación, ejecutar adb logcat y mostrar el error dentro de la consola:
arreglarlo agregando dentro de androidManifest.xml
fuente
De acuerdo con esta respuesta SO , se produce debido a un error del AWS SDK que parece estar resuelto en la versión 2.6.30 del SDK , por lo que actualizar la versión a una más nueva puede ayudarlo a solucionar el problema.
fuente