这个是需要申请开发key的
所以前面怎么注册,我就不说了,自己百度注册去
我就从http://lbsyun.baidu.com/这开始
获取密匙
点击创建应用
Window-Preferences-Build
提交生成一个key
创建一个Android项目,包名叫com.example.baidumaptest,上面的包名
加入百度地图SDK
一键下载
解压有三个,就要那个BaiduMap_AndroidSDK_v3.1.0_Sample,解压,进入libs,
除了android-support-v4.jar不要,其余的都复制到项目的libs目录下
布局文件里面:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<com.baidu.mapapi.map.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
</LinearLayout>
MainActivity.java
package com.example.baidumaptest;
import android.app.Activity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends Activity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.map_view);
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
}
权限里面:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.baidumaptest"<!-- 这里的包名不要错<span style="font-family: Arial, Helvetica, sans-serif;">--></span>
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="你的key" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
目前它就涉及到这么多,当然我也知道有很多奇葩的问题,我都遇到过,还好走运,都解决掉了,花了一晚上的时间,第一次是com.baidu.mapapi.map.MapView我写成了com.baidu.mapapi.MapView,找了好几个小时,都没找到,网上白白浪费几个小时(粗心要不得),可能我第一次申请key的姿势不太对,所以就连官方的demo我都运行出来的是灰格子,各种百度,各种说法都有,不过大部分是key不太对,然后我又申请一个key,去运行官方Demo,还是灰格子,才发现
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.baidumaptest"<!-- 这里的包名不要错<span style="font-family: Arial, Helvetica, sans-serif;">--></span>
android:versionCode="1"
android:versionName="1.0" >
这的包名还是弄错了,所以就有了第三次申请key,然后在第四次终于OK了,我又感觉自己取得权限跟官方给的那些权限不一样,他们要少,我就试了一下它们的,报了错,于是立马撤回了,吓死了
<application
android:allowBackup="true"<!-- 这里可能还会涉及到adt升级的问题,好解决 -->
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
有很多方法,最粗暴的:就是干它,选中Errors右键删除它,不过最好还是理性解决,我是窝了一头火才这么干的
到这应该差不多了。应该能运行出来的
我的长这样。。。