Eu encontrei esse erro ao usar o Android studio 3.1 para criar um aplicativo do Android P, o apk pode ser feito, mas quando o uso no emulador do Android P, ele falha e lança informações abaixo, mais detalhes veja a foto .
java.lang.NoClassDefFoundError: falha na resolução de: Lorg / apache / http / ProtocolVersion
parte do meu build.gradle no módulo App está abaixo, alguém conhece isso? E dá uma sugestão? Muito Obrigado.
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 link android-9.0-changes-28 -> descontinuação do cliente HTTP Apache explica o motivo da adição do seguinte ao seu AndroidManifest.xml:
fonte
Siga um destes procedimentos:
1- Atualize a biblioteca play-services-maps para a versão mais recente:
2- Ou inclua a seguinte declaração no
<application>
elemento deAndroidManifest.xml
.fonte
Se você estiver usando o Android 9.0 com jar herdado, precisará usar. no seu arquivo mainfest.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
fonte
Para executar o org.apache.http.legacy perfeitamente no Android 9.0 Pie, crie um arquivo xml
res/xml/network_security_config.xml
E adicione 2 tags no seu AndroidManifest.xml
Adicione também
useLibrary 'org.apache.http.legacy'
no seu app build gradlefonte
fonte
Também é relatado no rastreador de erros do Android: https://issuetracker.google.com/issues/79478779
fonte
Se você estiver usando
com.google.android.gms:play-services-maps:16.0.0
ou abaixo, e seu aplicativo tiver como alvo o nível 28 da API 28 (Android 9.0) ou superior, inclua a seguinte declaração no elemento AndroidManifest.xmlVerifique este link - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
fonte
Se você estiver usando com.google.android.gms: play-services-maps: 16.0.0 ou inferior e seu aplicativo estiver direcionado para o nível 28 da API 28 (Android 9.0) ou superior, inclua a seguinte declaração no elemento AndroidManifest. xml.
Isso é tratado para você se você estiver usando com.google.android.gms: play-services-maps: 16.1.0 e não será necessário se seu aplicativo estiver segmentando um nível de API mais baixo.
fonte
Em reagir nativo, tive o erro de não mostrar mapas e fechar o aplicativo, executar o adb logcat e mostrar erro no console:
corrija-o adicionando no androidManifest.xml
fonte
De acordo com esta resposta do SO , isso ocorre devido a um bug do AWS SDK que parece ter sido resolvido na versão 2.6.30 do SDK , portanto, a atualização da versão para uma mais recente pode ajudar a corrigir o problema.
fonte