J'ai rencontré une telle erreur lorsque j'utilise Android studio 3.1 pour créer une application Android P, l'apk peut être créé, mais lorsque je l'utilise sur l'émulateur Android P, il se plantera et affichera des informations ci-dessous, plus de détails voir la photo .
java.lang.NoClassDefFoundError: échec de la résolution de: Lorg / apache / http / ProtocolVersion
une partie de mon build.gradle sous le module App est ci-dessous, quelqu'un rencontre-t-il cela? Et donne quelques suggestions? Merci beaucoup.
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'
}
Ce lien android-9.0-changes-28 -> Obsolescence du client Apache HTTP explique la raison d'ajouter les éléments suivants à votre AndroidManifest.xml:
la source
Effectuez l'une des opérations suivantes:
1- Mettre à jour les play-services-maps bibliothèque vers la dernière version:
2- Ou inclure la déclaration suivante dans l'
<application>
élément deAndroidManifest.xml
.la source
Si vous utilisez Android 9.0 avec un pot hérité, vous devez utiliser. dans votre fichier mainfest.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
la source
Pour exécuter org.apache.http.legacy parfaitement dans Android 9.0 Pie, créez un fichier xml
res/xml/network_security_config.xml
Et ajoutez 2 balises tag dans votre AndroidManifest.xml
Ajoutez également
useLibrary 'org.apache.http.legacy'
votre gradle de construction d'applicationla source
la source
Il est également signalé sur le suivi des bogues Android: https://issuetracker.google.com/issues/79478779
la source
Si vous utilisez
com.google.android.gms:play-services-maps:16.0.0
ou en dessous et que votre application cible le niveau d'API 28 (Android 9.0) ou supérieur, vous devez inclure la déclaration suivante dans l'élément d'AndroidManifest.xmlVérifiez ce lien - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
la source
Si vous utilisez com.google.android.gms: play-services-maps: 16.0.0 ou inférieur et que votre application cible le niveau API 28 (Android 9.0) ou supérieur, vous devez inclure la déclaration suivante dans l'élément d'AndroidManifest. xml.
Ceci est géré pour vous si vous utilisez com.google.android.gms: play-services-maps: 16.1.0 et n'est pas nécessaire si votre application cible un niveau d'API inférieur.
la source
Dans React Native, j'ai eu l'erreur de ne pas afficher les cartes et de fermer l'application, d'exécuter adb logcat et d'afficher l'erreur dans la console:
corrigez-le en ajoutant dans androidManifest.xml
la source
Selon cette réponse SO , cela se produit en raison d'un bogue AWS SDK qui semble être résolu dans la version 2.6.30 du SDK , donc la mise à jour de la version vers une version plus récente peut vous aider à résoudre le problème.
la source