Zetknąłem się z takim błędem, gdy używam Androida Studio 3.1 do zbudowania aplikacji dla Androida P, można wykonać apk, ale kiedy użyję go na emulatorze Androida P, zawiesi się i wyrzuci poniżej informacji, więcej szczegółów zobacz zdjęcie .
java.lang.NoClassDefFoundError: nieudane rozwiązanie: Lorg / apache / http / ProtocolVersion
część mojego build.gradle pod modułem aplikacji jest poniżej, czy ktoś to spełnia? I daj trochę sugestii? Wielkie dzięki.
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'
}
Ten link android-9.0-zmiany-28 -> Wycofanie klienta HTTP Apache wyjaśnia powód dodania następujących elementów do pliku AndroidManifest.xml:
źródło
Wykonaj jedną z następujących czynności:
1- Zaktualizuj bibliotekę Play-Services-Maps do najnowszej wersji:
2- Lub dołącz następującą deklarację do
<application>
elementuAndroidManifest.xml
.źródło
Jeśli używasz Androida 9.0 ze starszym słojem, musisz go użyć. w twoim pliku mainfest.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
źródło
Aby perfekcyjnie uruchomić org.apache.http.legacy w systemie Android 9.0 Pie, utwórz plik xml
res/xml/network_security_config.xml
I dodaj tag 2 tagi w pliku AndroidManifest.xml
Dodaj także
useLibrary 'org.apache.http.legacy'
stopień kompilacji aplikacjiźródło
źródło
Jest również zgłaszany w narzędziu do śledzenia błędów Androida: https://issuetracker.google.com/issues/79478779
źródło
Jeśli używasz
com.google.android.gms:play-services-maps:16.0.0
lub poniżej, a aplikacja jest kierowana na interfejs API na poziomie 28 (Android 9.0) lub nowszy, musisz dołączyć następującą deklarację w elemencie AndroidManifest.xmlSprawdź ten link - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
źródło
Jeśli korzystasz z com.google.android.gms: play-services-maps: 16.0.0 lub niższej, a Twoja aplikacja jest ukierunkowana na interfejs API na poziomie 28 (Android 9.0) lub wyższy, musisz dołączyć następującą deklarację w elemencie AndroidManifest. xml.
Jest to obsługiwane, jeśli korzystasz z com.google.android.gms: play-services-maps: 16.1.0 i nie jest to konieczne, jeśli aplikacja jest kierowana na niższy poziom interfejsu API.
źródło
W React Native miałem błąd, aby nie wyświetlać map i zamykać aplikacji, uruchamiać adb logcat i pokazywać błąd w konsoli:
napraw to, dodając w pliku androidManifest.xml
źródło
Zgodnie z tą odpowiedzią SO występuje z powodu błędu AWS SDK, który wydaje się być rozwiązany w wersji 2.6.30 SDK , więc aktualizacja wersji do nowszej może pomóc w rozwiązaniu problemu.
źródło