一、搭建环境
参考资料:
1)新建一个工程;
2)到高德开放平台申请key,
其中获取调试版sha1可以参考:
但是发布版的SHA1则要参考:
否则后面发布release版本的apk之后运行会报错误码为1008的异常
3)在AndroidManifest.xml的application标签内添加,这里的your key就要用上一步申请的高德的key替换
4)在AndroidManifest的manifest元素内添加如下权限:
5)在Project的build.gradle的如下位置添加如下代码:
android{
defaultConfig{
ndk{
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","arm64-v8a","x86_64"
}
}
}
6)在Project的build.gradle的如下位置添加如下代码,只关注高亮部分。
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' //3D地图so及jar compile 'com.amap.api:3dmap:latest.integration' //定位功能 compile 'com.amap.api:location:latest.integration' //搜索功能 compile 'com.amap.api:search:latest.integration' testCompile 'junit:junit:4.12' }
7)在Project的build.gradle的如下位置添加如下代码,只关注高亮部分。
二、写代码
以下内容参考:
1)在activity_main.xml文件内添加
2)将MainActivity.java的内容改为如下
public class MainActivity extends Activity { MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.map); //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图 mMapView.onCreate(savedInstanceState); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制 mMapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态 mMapView.onSaveInstanceState(outState); } }