android引入高德地图
Android Studio版本 Android Studio Flamingo | 2022.2.1 Patch 2
模拟器型号 Pixel 2 API 31 1080*1920 420dpi
模拟器android版本 S Android 12.0 X86_64
生成jks获取SHA1值
keytool -genkey -v -keystore local.jks -alias local -storepass 666666 -keypass 666666 -keyalg RSA -keysize 2048 -validity 999999
keytool -list -v -keystore local.jks
第一步 获取key
1.包名为build.gradle文件android对象下的namespace属性值
2.获取高德地图kay
SHA1值和包名获取后就可以申请高德地图的key了。具体的高德地图官网写的很详细
第二步 引入依赖
1.在app目录下build.gradle加入高德地图依赖
android {
signingConfigs {
debug {
storeFile file('E:\\AndroidCode\\android jks\\local.jks')
storePassword '666666'
keyAlias 'local'
keyPassword '666666'
}
release {
storeFile file('E:\\AndroidCode\\android jks\\local.jks')
storePassword '666666'
keyPassword '666666'
keyAlias 'local'
}
}
defaultConfig {
applicationId "cn.cisbest.app"
minSdk 28
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//3D地图so及jar
implementation 'com.amap.api:3dmap:latest.integration'
//定位功能 会报错Execution failed for task ':app:checkDebugDuplicateClasses'.
// implementation 'com.amap.api:location:latest.integration'
//搜索功能
implementation 'com.amap.api:search:latest.integration'
}
第三步 在AndroidManifest.xml文件中配置权限和高德地图key
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AndroidDemo"
tools:targetApi="31">
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="申请的key"/>
</application>
<!--允许程序打开网络套接字-->
<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" />
通过本地导入SDK使用高德地图
通过依赖引入高德地图定位功能 会报错Execution failed for task ':app:checkDebugDuplicateClasses'的错误,没有找到原因,直接下载aar包引入。下载地址,选择下载aar包的3D地图合包。

把下载的aar包放入libs目录下,然后在build.gradle文件下通过implementation files("libs/AMap3DMap_9.7.0_AMapSearch_9.7.0_AMapLocation_6.3.0_20230529.aar")
引入

踩坑1
高德官方从2021年11月23日更新了隐私合规接口

要在每次调用地图sdk前调用updatePrivacyShow、updatePrivacyAgree两个接口
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapsInitializer.updatePrivacyShow(this,true,true);
MapsInitializer.updatePrivacyAgree(this,true);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.map);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mMapView.onCreate(savedInstanceState);
}
测试Demo https://github.com/cisbest/AndroidDemo/tree/mapDemo
参考
高德地图android入门指南https://lbs.amap.com/api/android-sdk/gettingstarted,keytool,keytool,## 隐私合规接口说明https://lbs.amap.com/api/android-sdk/guide/create-project/dev-attention#t2
浙公网安备 33010602011771号