Estou usando o SDK do Android Maps 11.6.2 do Google Maps (também tentei 15.0.1), mas recebo a seguinte falha antes que o mapa seja exibido. A chave de API já marcada no manifesto, está disponível, mas ainda assim esse problema ocorre. Estou tendo a versão targetSDk como 28. Isso causa esse problema.
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
fonte
fonte
Respostas:
Coloque isso na
<application>
tag Manifest :Mais informações: https://issuetracker.google.com/issues/79478779
fonte
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
depois que mudei para o AndroidX (e os métodos subsequentes aumentam o limite de 65 mil)Isso resolverá sua falha. Aplique isso no manifesto
fonte
android:usesCleartextTraffic="true"
? Outras respostas não mencionam esta linha. Tão opcional?android:usesCleartextTraffic="true"
questão também é que você receberá mais tarde, é por motivos de segurança.android:usesCleartextTraffic=”true”
isso permite a comunicação com links http em texto não criptografado - isso é status quo. Pelo que entendi, apenasandroid:usesCleartextTraffic=”false”
tornaria o aplicativo mais "seguro". Por favor me corrija se eu estiver errado.Siga uma das seguintes soluções:
1- Atualize a biblioteca play-services-maps para a versão mais recente:
2- Ou inclua a seguinte declaração no
<application>
elemento deAndroidManifest.xml
.fonte
Se seu aplicativo estiver direcionado para o nível 28 da API (Android 9.0) ou superior, inclua a seguinte declaração no
<application>
elemento AndroidManifest.xml.fonte
Se seu aplicativo estiver direcionado para o nível 28 da API (Android 9.0) ou superior, inclua a seguinte declaração no elemento AndroidManifest.xml. veja as alterações comportamentais da segmentação de aplicativos com mais de 28 anos no link abaixo
https://developer.android.com/about/versions/pie/android-9.0-changes-28
fonte
Se isso acontecer no Android 8.0 ou superior, basta colocar esta linha na tag do aplicativo manifesto
fonte
Definir tis:
Como isso:
fonte
Adicionar permissões no arquivo de manifesto
e em parte colocar essa linha de código
Eu tive o mesmo problema e foi corrigido por isso.
fonte
Aqui está a solução
Adicionando esta linha à sua
<application>
tag Menifest.xml insidepara mais informações
fonte
crie um arquivo xml res / xml / network_security_config.xml
E adicione 2 tags no seu AndroidManifest.xml
Adicione também useLibrary 'org.apache.http.legacy' em seu aplicativo
fonte