android studio 调用高德地图
1、下载sdk
http://lbs.amap.com/api/android-location-sdk/download/
选中 地图功能
导航功能
搜索功能
定位功能
选中3d地图
选中开发包
,如有需要可以选择示例代码
2、android studio 创建新项目
跳过
3、添加jar包以及so库
将第一步下载下来的压缩文件夹解压,复制到app/libs
目录file
-Project Structure
-app
-Dependencies
,点击+
选择File dependency
,选中刚刚加进来的xxx.jar
文件。
打开build.gradle
文件,添加下面配置。
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
4、注册高德开发者账号
- key名称,任意
- 服务平台,Android平台SDK
发布版安全码:SHA1
回到android studio
,选择build
-Generate signed APK
-Next
-Create new
,选择key store path
路径,我放在桌面,打开终端,执行keytool -list -keystore ~/Desktop/mapDemo.jks
其中~/Desktop/mapDemo.jks
表示key store path
路径,生成出$ keytool -list -keystore ~/Desktop/mapDemo.jks Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry mapdemo, Dec 17, 2016, PrivateKeyEntry, Certificate fingerprint (SHA1): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
将XX:XX,输入到
发布版安全码:SHA1
中。- 调试版安全码SHA1
使用keytool -list -keystore ~/.android/debug.keystore
生成。
密码直接回车。 - Package
包名,如com.ghostcir.maptest
提交,保存key
,在下一步中将用到。
扩展阅读http://lbs.amap.com/api/android-sdk/guide/creat-project/get-key/#key
5、添加权限、增加高德key
编辑AndroidManifest.xml,增加
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ghostcir.maptest">
......
<!--允许程序打开网络套接字-->
<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
......
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="请输入您的用户Key"/>
......
</application>
</manifest>
6、增加地图控件
找到app/src/main/res/layout/activity_main.xml
,添加以下代码
<com.amap.api.maps.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map"></com.amap.api.maps.MapView>
找到app/src/main/src/java/com.ghostcir.maptest/MainActivity
,配置以下代码
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
......
mapView = (MapView)(findViewById(R.id.map));
mapView.onCreate(savedInstanceState);
}
......
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onRestart() {
super.onRestart();
//mapView.onR
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
mapView.onSaveInstanceState(outState);
}
@Override
protected void onStop() {
super.onStop();
//mapView.onSto
}
}
7、执行注意
高德的so库中只有arm架构
所以模拟器需要选择arm
的。