java.lang.NoClassDefFoundError:échec de la résolution de :Lorg/apache/http/ProtocolVersion
J'ai rencontré une erreur lorsque j'utilise Android studio 3.1 pour construire un Android P 's app, apk peut être faite ,mais quand je l'utilise sur Android P émulateur , il va se planter et de les jeter au-dessous d'info, plus de détails, voir le pic.
java.lang.NoClassDefFoundError:échec de la résolution de :Lorg/apache/http/ProtocolVersion
partie de mon build.gradle en vertu de l'Application du module ci-dessous , quelqu'un répondre à cela ?Et de donner quelques suggesstion ? 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'
}
Vous devez vous connecter pour publier un commentaire.
Mise à jour: Ce n'est plus un bug ou d'une solution de contournement, il est nécessaire si votre application les objectifs de l'API de Niveau 28 (Android 9.0) ou au-dessus et utilise les Cartes de Google SDK pour Android 16.0.0 ou au-dessous (ou si votre application utilise le serveur Apache HTTP Héritage de la bibliothèque). Il est maintenant inclus dans le officiel docs. Le public a été fermé comme prévu comportement.
C'est un bug sur le Google Play Services côté, jusqu'à ce qu'il soit corrigé, vous devriez être en mesure de contourner ce problème en ajoutant ceci à votre
AndroidManifest.xml
à l'intérieur de la<application>
tag:GeoFire
.Ce lien android-9.0-modifications-28-->HTTP Apache client autodérision explique la raison pour ajouter les éléments suivants à votre AndroidManifest.xml:
Effectuez l'une des opérations suivantes:
1 - mise à Jour le play-services-cartes de la bibliothèque de la dernière version:
2 - Ou inclure la déclaration suivante à l'intérieur de la
<application>
élément deAndroidManifest.xml
.Il est également signalé sur Android bug tracker: https://issuetracker.google.com/issues/79478779
Pour exécuter org.apache.http.héritage perfectely dans Android 9.0 Tarte créer un fichier xml
res/xml/network_security_config.xml
Et ajouter 2 balises balise dans votre AndroidManifest.xml
Également ajouter
useLibrary 'org.apache.http.legacy'
dans votre application de build gradleSi vous utilisez com.google.android.gms:jouer-services-cartes:16.0.0 ou ci-dessous et votre application est de ciblage de l'API de niveau 28 (Android 9.0) ou au-dessus, vous devez inclure la déclaration suivante à l'intérieur de l'élément de AndroidManifest.xml.
C'est fait pour vous si vous êtes à l'aide de com.google.android.gms:jouer-services-cartes:16.1.0 et n'est pas nécessaire si votre application est de cibler un plus faible niveau API.