getLatitude()和getLongitude()在android模拟器上崩溃

时间:2011-08-24 10:28:32

标签: android

我正在处理一个Android应用程序的问题。应用程序正常工作,直到我添加两行代码来获取用户的经度和经度。当我添加此代码时,我的应用程序崩溃没有明显的原因。这是带有getLatitude和getLongitude方法的代码。当我删除这两行时,应用程序工作正常。任何想法为什么会发生这种情况?

public class Car_mode extends Activity implements LocationListener {

    private TextView latituteField;
private TextView longitudeField;
@Override
protected void onCreate(Bundle savedInstanceState) {

    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.carmode);

    latituteField = (TextView) findViewById(R.id.TextView04);
    longitudeField = (TextView) findViewById(R.id.TextView03);

    LocationManager locationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);


    Location mostRecentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

    double lat = mostRecentLocation.getLatitude();
    double lng = mostRecentLocation.getLongitude();



    latituteField.setText("test");
    longitudeField.setText("test");
    setButtonClickListener();


}

提前致谢。

以下是Logcat消息:

08-24 10:30:09.714: DEBUG/AndroidRuntime(281): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<

08-24 10:30:09.714: DEBUG/AndroidRuntime(281): CheckJNI is ON

08-24 10:30:09.844: DEBUG/AndroidRuntime(281): --- registering native functions ---

08-24 10:30:10.344: DEBUG/AndroidRuntime(281): Shutting down VM

08-24 10:30:10.354: DEBUG/dalvikvm(281): Debugger has detached; object registry had 1 entries

08-24 10:30:10.354: INFO/AndroidRuntime(281): NOTE: attach of thread 'Binder Thread #3' failed


08-24 10:30:10.784: DEBUG/AndroidRuntime(289): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<

08-24 10:30:10.784: DEBUG/AndroidRuntime(289): CheckJNI is ON

08-24 10:30:10.904: DEBUG/AndroidRuntime(289): --- registering native functions ---

08-24 10:30:11.414: INFO/ActivityManager(58): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.javoider.app/.main }

08-24 10:30:11.454: INFO/ActivityManager(58): Start proc com.javoider.app for activity com.javoider.app/.main: pid=295 uid=10036 gids={3003}

08-24 10:30:11.484: DEBUG/AndroidRuntime(289): Shutting down VM

08-24 10:30:11.484: DEBUG/dalvikvm(289): Debugger has detached; object registry had 1 entries

08-24 10:30:11.514: INFO/AndroidRuntime(289): NOTE: attach of thread 'Binder Thread #3' failed

08-24 10:30:12.404: INFO/ActivityManager(58): Displayed activity com.javoider.app/.main: 966 ms (total 592105 ms)

08-24 10:30:13.664: INFO/ActivityManager(58): Starting activity: Intent { act=android.intent.action.CARMODE cmp=com.javoider.app/.Car_mode }

08-24 10:30:13.763: DEBUG/AndroidRuntime(295): Shutting down VM

08-24 10:30:13.763: WARN/dalvikvm(295): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

08-24 10:30:13.774: ERROR/AndroidRuntime(295): FATAL EXCEPTION: main

08-24 10:30:13.774: ERROR/AndroidRuntime(295): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.javoider.app/com.javoider.app.Car_mode}: java.lang.NullPointerException

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.os.Handler.dispatchMessage(Handler.java:99)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.os.Looper.loop(Looper.java:123)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread.main(ActivityThread.java:4627)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at java.lang.reflect.Method.invokeNative(Native Method)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at java.lang.reflect.Method.invoke(Method.java:521)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at dalvik.system.NativeStart.main(Native Method)

08-24 10:30:13.774: ERROR/AndroidRuntime(295): Caused by: java.lang.NullPointerException

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at com.javoider.app.Car_mode.onCreate(Car_mode.java:38)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

08-24 10:30:13.774: ERROR/AndroidRuntime(295):     ... 11 more

08-24 10:30:13.784: WARN/ActivityManager(58):   Force finishing activity com.javoider.app/.Car_mode

08-24 10:30:13.784: WARN/ActivityManager(58):   Force finishing activity com.javoider.app/.main

08-24 10:30:14.284: WARN/ActivityManager(58): Activity pause timeout for HistoryRecord{450a11e0 com.javoider.app/.Car_mode}

08-24 10:30:15.493: INFO/Process(295): Sending signal. PID: 295 SIG: 9

08-24 10:30:15.503: INFO/WindowManager(58): WIN DEATH: Window{45086398 com.javoider.app/com.javoider.app.main paused=true}

08-24 10:30:15.503: INFO/ActivityManager(58): Process com.javoider.app (pid 295) has died.

08-24 10:30:15.533: WARN/InputManagerService(58): Got RemoteException sending setActive(false) notification to pid 295 uid 10036

08-24 10:30:16.295: WARN/KeyCharacterMap(124): No keyboard for id 0

08-24 10:30:16.295: WARN/KeyCharacterMap(124): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

08-24 10:30:24.666: WARN/ActivityManager(58): Activity destroy timeout for HistoryRecord{4508dcf8 com.javoider.app/.main}

08-24 10:30:24.666: WARN/ActivityManager(58): Activity destroy timeout for HistoryRecord{450a11e0 com.javoider.app/.Car_mode}

1 个答案:

答案 0 :(得分:2)

您必须在模拟器中修复您的GPS位置。请参阅this链接。

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        bestProvider = locationManager.getBestProvider(criteria,true);

    Location location = locationManager.getLastKnownLocation(bestProvider);
        double lat = location.getLatitude();
    double lng = location.getLongitude();