Ich habe einen solchen Fehler festgestellt, als ich Android Studio 3.1 zum Erstellen einer Android P-App verwende. Die Apk kann erstellt werden. Wenn ich sie jedoch auf dem Android P-Emulator verwende, stürzt sie ab und wirft die folgenden Informationen auf. Weitere Details finden Sie auf dem Bild .
java.lang.NoClassDefFoundError: Fehlgeschlagene Auflösung von: Lorg / apache / http / ProtocolVersion
Ein Teil meines build.gradle unter App-Moduls ist unten, jemand trifft dies? Und geben Sie einen Vorschlag? Danke vielmals.
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'
}
Dieser Link android-9.0- changers -28 -> Apache HTTP-Client-Ablehnung erklärt den Grund für das Hinzufügen der folgenden Elemente zu Ihrer AndroidManifest.xml:
quelle
Führen Sie einen der folgenden Schritte aus:
1- Aktualisieren Sie die Play-Services-Maps- Bibliothek auf die neueste Version:
2- Oder fügen Sie die folgende Erklärung in das
<application>
Element von einAndroidManifest.xml
.quelle
Wenn Sie Android 9.0 mit Legacy-JAR verwenden, müssen Sie es verwenden. in Ihrer Mainfest-Datei.
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
quelle
Um org.apache.http.legacy in Android 9.0 Pie perfekt auszuführen, erstellen Sie eine XML-Datei
res/xml/network_security_config.xml
Und fügen Sie 2 Tags in Ihre AndroidManifest.xml ein
useLibrary 'org.apache.http.legacy'
Fügen Sie auch in Ihrer App Build Gradle hinzuquelle
quelle
Es wird auch auf Android Bug Tracker gemeldet: https://issuetracker.google.com/issues/79478779
quelle
Wenn Sie
com.google.android.gms:play-services-maps:16.0.0
oder weniger verwenden und Ihre App auf API-Level 28 (Android 9.0) oder höher abzielt, müssen Sie die folgende Deklaration in das Element von AndroidManifest.xml aufnehmenÜberprüfen Sie diesen Link - https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library
quelle
Wenn Sie com.google.android.gms: play-services-maps: 16.0.0 oder niedriger verwenden und Ihre App auf API-Level 28 (Android 9.0) oder höher abzielt, müssen Sie die folgende Deklaration in das Element von AndroidManifest aufnehmen. xml.
Dies wird für Sie erledigt, wenn Sie com.google.android.gms: play-services-maps: 16.1.0 verwenden. Dies ist nicht erforderlich, wenn Ihre App auf eine niedrigere API-Ebene abzielt.
quelle
In React Native hatte ich den Fehler, keine Karten anzuzeigen und App zu schließen, adb logcat auszuführen und Fehler in der Konsole anzuzeigen:
Beheben Sie das Problem, indem Sie es in androidManifest.xml hinzufügen
quelle
Laut dieser SO-Antwort tritt dies aufgrund eines AWS SDK-Fehlers auf, der in Version 2.6.30 des SDK behoben zu sein scheint. Wenn Sie also die Version auf eine neuere Version aktualisieren, können Sie das Problem beheben.
quelle