Я встречал такую ошибку, когда я использую Android studio 3.1 для создания приложения для Android P, можно сделать apk, но когда я использую его на эмуляторе Android P, он вылетит и выдаст ниже информацию, более подробную информацию смотрите на рис. ,
java.lang.NoClassDefFoundError: сбой при разрешении: Lorg / apache / http / ProtocolVersion
часть моего build.gradle под модулем приложения находится ниже, кто-нибудь встречал это? И дать некоторые предложения? Большое спасибо.
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'
}
Эта ссылка android-9.0-changes-28 -> Устаревание клиента HTTP Apache объясняет причину добавления следующего в ваш AndroidManifest.xml:
источник
Выполните любое из следующих действий:
1- Обновите библиотеку play-services-maps до последней версии:
2- Или включите следующую декларацию в
<application>
элементAndroidManifest.xml
.источник
Если вы используете Android 9.0 с устаревшим jar, чем вы должны использовать. в вашем файле mainfest.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
источник
Для запуска org.apache.http.legacy в Android 9.0 Pie создайте файл XML
res/xml/network_security_config.xml
И добавьте 2 тега тега в свой AndroidManifest.xml
Также добавьте
useLibrary 'org.apache.http.legacy'
в ваше приложение сборку Gradleисточник
источник
Об этом также сообщается на трекере ошибок Android: https://issuetracker.google.com/issues/79478779
источник
Если вы используете
com.google.android.gms:play-services-maps:16.0.0
или ниже, и ваше приложение ориентировано на уровень API 28 (Android 9.0) или выше, вы должны включить следующую декларацию в элемент AndroidManifest.xmlПроверьте эту ссылку - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
источник
Если вы используете com.google.android.gms: play-services-maps: 16.0.0 или ниже и ваше приложение ориентировано на уровень API 28 (Android 9.0) или выше, вы должны включить следующее объявление в элемент AndroidManifest. XML.
Это обрабатывается для вас, если вы используете com.google.android.gms: play-services-maps: 16.1.0, и не требуется, если ваше приложение ориентировано на более низкий уровень API.
источник
В реагировать на родной, я имел ошибку не показать карты и закрыть приложение, запустить adb logcat и показать ошибку в консоли:
исправить это, добавив в androidManifest.xml
источник
Согласно этому ответу SO , это происходит из-за ошибки AWS SDK, которая, по-видимому, устранена в версии 2.6.30 SDK , поэтому обновление версии до более новой может помочь вам решить проблему.
источник