При сбое активности в приложении происходит сбой приложения - программирование
Подтвердить что ты не робот

При сбое активности в приложении происходит сбой приложения

Мои проекты Работа с картами не работает
Я просто вставил ключ api на место google_maps_api.xml и нажал google_maps_api.xml запуска

Logcat:

E/AndroidRuntime: FATAL EXCEPTION: Thread-5 Процесс: com.example.appmy.lofind, PID: 10901 java.lang.NoClassDefFoundError: сбой разрешения: Lorg/apache/http/ProtocolVersion; на el.b(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 3) на ek.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 4) на em.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 51) на com.google.maps.api.android.lib6. dd.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8. 48 (040700-196123505): 16) at dw.run(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 61) Причиняется: java.lang.ClassNotFoundException: не найти класс "org.apache.http.ProtocolVersion" по пути: DexPathList [[zip файл]/system/priv-app/PrebuiltGmsCore/app_chimera/m/MapsDynamite.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000006/MapsDynamite.apk!/lib/x86,/system/lib]] в dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126) в java.lang.ClassLoader.loadClass(ClassLoader.java:379) в ad.loadClass(: com.google.android.gms.dynamite_dynamiteloader @12848026 @12.8.48 (040700-196123505): 25) в java.lang.ClassLoader.loadClass(ClassLoader.java:312) в el.b(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 3) на ek.a(: com.google.android. gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 4) на em.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 51) в com.google.maps.api.android.lib6.drd.ap.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 11) at dw.a(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 16) на dw.run(: com.google.android.gms.dynamite_mapsdynamite @12848026 @12.8.48 (040700-196123505): 61) E/SchedPolicy: set_timerslack_ns не удалось выполнить запись: операция не разрешена

4b9b3361

Ответ 1

Та же проблема здесь при использовании целевого SDK 28. Возвращение к SDK 27 решило проблему.


Не возвращайте целевой SDK.

Лучше использовать это решение fooobar.com/questions/15882157/...

Ответ 2

Я нашел другое решение на Android Google maps java.lang.NoClassDefFoundError: Не удалось разрешить: Lorg/apache/http/ProtocolVersion

Просто добавьте это в свой манифест:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

Обновить:

Начиная с Google Maps SDK версии 16.1.0, вы можете пропустить добавленное выше решение, поскольку тег был добавлен в AndroidManifest библиотеки карт.

https://developers.google.com/maps/documentation/android-sdk/releases#2019-02-06

Добавлено следующее объявление в AndroidManifest.xml для поддержки HTTP-клиента Apache на Android P и выше. После обновления до com.google.android.gms: play-services-maps: 16.1.0 вы можете удалить эту строку из собственного AndroidManifest.xml. (Выпуск 117591497).

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

Ответ 4

Поместите это в тег Manifest:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

Дополнительная информация: https://issuetracker.google.com/issues/79478779

как говорится в документации Google:

Если вы используете com.google.android.gms: play-services-maps: 16.0.0 или ниже и ваше приложение ориентировано на уровень API 28 (Android 9.0) или выше, вы должны включить следующее объявление в элемент AndroidManifest. XML.

Ответ 5

Использование реализации "com.google.android.gms: play-services-maps: 16.1.0" или выше