Ich verwende Google Maps Android SDK 11.6.2 (auch 15.0.1 ausprobiert), erhalte jedoch folgenden Absturz, bevor die Karte angezeigt wird. Der bereits überprüfte API-Schlüssel im Manifest ist verfügbar, dieses Problem tritt jedoch weiterhin auf. Ich habe die targetSDk-Version als 28.Ist dies das Problem?
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
at el.b(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):3)
at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):4)
at em.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):51)
at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):11)
at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):16)
at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):61)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/system/priv-app/PrebuiltGmsCorePi/app_chimera/m/MapsDynamite.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000036/MapsDynamite.apk!/lib/armeabi-v7a, /data/user_de/0/com.google.android.gms/app_chimera/m/00000036/MapsDynamite.apk!/lib/armeabi, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at ad.loadClass(:com.google.android.gms.dynamite_dynamiteloader@[email protected] (100408-196123505):25)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at el.b(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):3)
at ek.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):4)
at em.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):51)
at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):11)
at dw.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):16)
at dw.run(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):61)
android
google-maps
google-play-services
Ramprasad
quelle
quelle
Antworten:
Fügen Sie dies in das Manifest-
<application>
Tag ein:Weitere Informationen: https://issuetracker.google.com/issues/79478779
quelle
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
nachdem ich zu AndroidX gewechselt war (und die nachfolgenden 65K-Methoden das Limit erhöhten)Dadurch wird Ihr Absturz behoben. Wenden Sie dies im Manifest an
quelle
android:usesCleartextTraffic="true"
gut? Andere Antworten erwähnen diese Zeile nicht. Also optional?android:usesCleartextTraffic="true"
ist auch ein Problem, das Sie später bekommen werden, es ist aus Sicherheitsgründen.android:usesCleartextTraffic=”true”
dies die Kommunikation mit Klartext-http-Links ermöglicht - das ist der Status Quo. Soweit ich weiß,android:usesCleartextTraffic=”false”
würde nur die App "sicherer" machen. Bitte korrigieren Sie mich, wenn ich falsch liege.Führen Sie eine der folgenden Lösungen 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 Ihre App auf API-Level 28 (Android 9.0) oder höher
<application>
abzielt , müssen Sie die folgende Deklaration in das Element von AndroidManifest.xml aufnehmen.quelle
Wenn 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. Sehen Sie sich die Verhaltensänderungen von App Targeting 28+ unter dem folgenden Link an
https://developer.android.com/about/versions/pie/android-9.0-changes-28
quelle
Wenn dies in Android 8.0 oder höher geschieht, fügen Sie diese Zeile einfach in Ihr Manifest-Anwendungs-Tag ein
quelle
Stellen Sie Folgendes ein:
So was:
quelle
Fügen Sie Berechtigungen zur Manifest-Datei hinzu
und teilweise setzen Sie diese Codezeile
Ich hatte das gleiche Problem und es wurde dadurch behoben.
quelle
Hier ist die Lösung
Hinzufügen dieser Zeile zu Ihrem Menifest.xml-
<application>
TagFür mehr Information
quelle
Erstellen Sie eine XML-Datei res / xml / network_security_config.xml
Und fügen Sie 2 Tags in Ihre AndroidManifest.xml ein
Fügen Sie außerdem useLibrary 'org.apache.http.legacy' in Ihren App Build Gradle ein
quelle