According to Baidu prompt demo, the contents of its manifest.xml of reference from:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demobaidumaps"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="10" />
<application
android:name="com.example.demobaidumaps.BaiduDemoApp"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="your key" />
<activity
android:name="com.example.demobaidumaps.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:label="BaiduMapSDKDemo" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
</service>
</application>
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
</permission>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
</uses-permission>
<!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CAMERA" >
</uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 来电消音 -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="false"
android:resizeable="true"
android:smallScreens="true" />
</manifest>
Global Application:
BaiduDemoApp.java:
package com.example.demobaidumaps;
import android.app.Application;
import com.baidu.mapapi.SDKInitializer;
public class BaiduDemoApp extends Application{
public void onCreate(){
super.onCreate();
SDKInitializer.initialize(this);
// setContentView(R.layout.activity_main);
}
}
Get latitude and longitude and load map:
MainActivity.java:
package com.example.demobaidumaps;
import android.app.Activity;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMapOptions;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.model.LatLng;
public class MainActivity extends Activity {
MapView mMapView = null;
private BaiduMap mBaiduMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationManager manager = (LocationManager)getSystemService(LOCATION_SERVICE);
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,10000,2,new LocationListener(){
@Override
public void onLocationChanged(Location arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
});
Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
LatLng p = null;
if(location!=null){
p = new LatLng(location.getLatitude(),location.getLongitude());
mMapView = new MapView(this,
new BaiduMapOptions().mapStatus(new MapStatus.Builder()
.target(p).build()));
}else{
p = new LatLng(24.88,118.67);
mMapView = mMapView = new MapView(this, new BaiduMapOptions());
}
//p = new LatLng(24.885845140427213,118.67264333192573);
setContentView(mMapView);
mBaiduMap = mMapView.getMap();
}
@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();
}
}
another:
Baidu was originally a reference to the document helloworld Demo experiment:
That http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
Found, mapView use when writing after the xml is loaded, the program will run error:
12-02 22:11:19.381: E/AndroidRuntime(1192): FATAL EXCEPTION: main
12-02 22:11:19.381: E/AndroidRuntime(1192): java.lang.NoClassDefFoundError: com.baidu.mapapi.SDKInitializer
12-02 22:11:19.381: E/AndroidRuntime(1192): at com.example.demobaidumaps.MainActivity.onCreate(MainActivity.java:27)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.Activity.performCreate(Activity.java:5008)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.os.Looper.loop(Looper.java:137)
12-02 22:11:19.381: E/AndroidRuntime(1192): at android.app.ActivityThread.main(ActivityThread.java:4745)
12-02 22:11:19.381: E/AndroidRuntime(1192): at java.lang.reflect.Method.invokeNative(Native Method)
12-02 22:11:19.381: E/AndroidRuntime(1192): at java.lang.reflect.Method.invoke(Method.java:511)
12-02 22:11:19.381: E/AndroidRuntime(1192): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
12-02 22:11:19.381: E/AndroidRuntime(1192): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-02 22:11:19.381: E/AndroidRuntime(1192): at dalvik.system.NativeStart.main(Native Method)
do not know why.
So, in the future development, will no longer refer to this method a.
Other people have encountered the same problem, you can use the code I used above.
Reproduced in: https: //my.oschina.net/u/2552902/blog/543880