安卓开发中高德导入地图黑屏问题整理

很长一段时间一直在围绕高德做二次开发,在导入地图时会出现地图黑屏不显示的问题,这里对我遇到的问题做一下整理给出解决办法。

一、效果图


左边是要实现的效果,右边是出现的问题。

二、解决

1、导入地图需要给与权限和正确的key值,因此首先在AndroidManifest中查看权限和key是否正确。

相关权限

//地图SDK(包含其搜索功能)需要的基础权限
     
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />     
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

以下在Application中加入

<service android:name="com.amap.api.location.APSService" />

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="key" />

2、检查jar文件与so库的导入

注意:

高德开发平台中明确指出的两种方法,两种方法同时使用会导致黑屏;
若jar包与so文件的版本不一样也会导致黑屏;
jar包或so文件重复,比如同时导入导航的sdk和3d地图的sdk会导致黑屏,因为导航sdk就包含了3d地图sdk

①导入jar文件
将下载好的jar包直接复制到libs目录下。
②导入so库
方法一:
使用默认配置在main目录下新建jniLibs(若有则无需重复创建)将下载好的armeabi 文件夹复制到jniLibs目录下。

在这里插入图片描述
方法二:
使用自定义配置,将armeabi 文件夹复制到lib目录下,并在build.gradle中增添如下配置

在这里插入图片描述

sourceSets {
    
    
    main {
    
    
        jniLibs.srcDirs = ['libs']
    }
}

3.检查mapview容器是否创建地图

三、最后

以上是我暂时遇到的问题,后续大家如果还有什么坑的话,可以一起讨论。

猜你喜欢

转载自blog.csdn.net/qq_44706002/article/details/105549448