2011-08-24 49 views
1

我遇到了一個我正在使用的android應用程序的問題。該應用程序工作正常,直到我添加獲取用戶的經緯度的兩行代碼。當我添加此代碼時,我的應用程序崩潰沒有明顯的原因。這裏是getLatitude和getLongitude方法的代碼。當我刪除這兩行時,該應用程序工作得很好。任何想法爲什麼發生這種情況?getLatitude()和getLongitude()在android模擬器上崩潰

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} 
+0

這裏 – Randroid

+0

後的logcat封郵件貼在logcat的消息在原崗位 – Dimitris

回答

2

您必須解決在emulator.See this鏈接您的GPS位置。

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(); 
+0

我試過,但它不工作。我的意思是,我可以將GPS定位發送到設備,我嘗試使用Google地圖,但即使在發送座標後,我的應用仍然崩潰。任何其他想法爲什麼發生這種情況? – Dimitris

+0

你把清單文件中的正確權限 – Rasel

+0

是的。我添加了以下權限:訪問精細的位置,訪問粗略的位置和互聯網。 – Dimitris

相關問題