액티비티를 시작할 시에 구글맵에 현재 저의 위치로 마커를 찍도록 해보려고 합니다
package com.example.gmap;
import android.location.Location;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapActivity extends FragmentActivity {
private GoogleMap gMap;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity);
// TODO Auto-generated method stub
init();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
init();
}
void init () {
if (gMap==null) {
gMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
if(gMap!=null) {
addMarker();
}
}
}
void addMarker () {
Location cLoc = gMap.getMyLocation();
gMap.addMarker(new MarkerOptions().position(new LatLng(cLoc.getLatitude(),cLoc.getLongitude())).title("test"));
}
}
10-02 11:27:42.031: E/AndroidRuntime(20030): FATAL EXCEPTION: main
10-02 11:27:42.031: E/AndroidRuntime(20030): Process: com.example.gmap, PID: 20030
10-02 11:27:42.031: E/AndroidRuntime(20030): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gmap/com.example.gmap.MapActivity}: java.lang.IllegalStateException: MyLocation layer not enabled
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread.access$1000(ActivityThread.java:198)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.os.Handler.dispatchMessage(Handler.java:102)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.os.Looper.loop(Looper.java:145)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread.main(ActivityThread.java:6837)
10-02 11:27:42.031: E/AndroidRuntime(20030): at java.lang.reflect.Method.invoke(Native Method)
10-02 11:27:42.031: E/AndroidRuntime(20030): at java.lang.reflect.Method.invoke(Method.java:372)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
10-02 11:27:42.031: E/AndroidRuntime(20030): Caused by: java.lang.IllegalStateException: MyLocation layer not enabled
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.google.a.a.ab.b(Unknown Source)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.google.maps.api.android.lib6.d.et.j(Unknown Source)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.google.android.gms.maps.internal.j.onTransact(SourceFile:281)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.os.Binder.transact(Binder.java:395)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.getMyLocation(Unknown Source)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.google.android.gms.maps.GoogleMap.getMyLocation(Unknown Source)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.example.gmap.MapActivity.addMarker(MapActivity.java:42)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.example.gmap.MapActivity.init(MapActivity.java:36)
10-02 11:27:42.031: E/AndroidRuntime(20030): at com.example.gmap.MapActivity.onCreate(MapActivity.java:22)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.Activity.performCreate(Activity.java:6500)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
10-02 11:27:42.031: E/AndroidRuntime(20030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
10-02 11:27:42.031: E/AndroidRuntime(20030): ... 10 more
위 소스에서 Location 을 이용하지않고 제가 직접 position에 (0,0)과 같이 특정값을 주어 실행하였을땐 런타임 오류없이 마커가 찍혀 나오는데요, Location에 getMyLocation 함수를 이용할 시엔 런타임 에러가 발생합니다...
초보개발자에게 도움부탁드립니다ㅜㅜ