2013-04-04 165 views
0

当我整合时,我的代码独立但崩溃!在Android的谷歌地图上显示当前位置和其他位置

这部分的工作,如果我硬鳕鱼当前

Intent is = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://maps.googleapis.com/maps/api/staticmapcenter="+current+"&zoom=11&size=600000x400000&maptype=roadmap&markers=color:blue%7Clabel:A%7C49.264081,-123.170326&markers=color:green%7Clabel:B%7C49.227741,-122.997605&markers=color:yellow%7Clabel:C%7C49.322642,-123.099007&markers=color:purple%7Clabel:E%7C49.267501,-123.000693&markers=color:red%7Ccolor:red%7Clabel:D%7C49.193767,-123.083017&sensor=false")); 
startActivity(is); 

这部分作品的价值,并给出当前的位置

googlemap.setMyLocationEnabled(true); 
      LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); 
      String provider = lm.getBestProvider(new Criteria(), true); 
      Log.v(provider, "this is provider"); 
      if (provider == null){ 
       onProviderDisabled(provider); 
      } 
      Location loc = lm.getLastKnownLocation(provider); 
      Log.v(loc.toString(),"this is loc"); 
      if(loc != null) { 
       onLocationChanged(loc); 

但是这一次它是一体化,崩溃

 googlemap.setMyLocationEnabled(true); 
    LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); 
    String provider = lm.getBestProvider(new Criteria(), true); 
    Log.v(provider, "this is provider"); 
    if (provider == null){ 
     onProviderDisabled(provider); 
    } 
    Location loc = lm.getLastKnownLocation(provider); 
    Log.v(loc.toString(),"this is loc"); 
    if(loc != null) { 
     onLocationChanged(loc); 
     String current= loc.toString(); 
       Intent is = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.googleapis.com/maps/api/staticmap?center="+current+"&zoom=11&size=600000x400000&maptype=roadmap&markers=color:blue%7Clabel:A%7C49.264081,-123.170326&markers=color:green%7Clabel:B%7C49.227741,-122.997605&markers=color:yellow%7Clabel:C%7C49.322642,-123.099007&markers=color:purple%7Clabel:E%7C49.267501,-123.000693&markers=color:red%7Ccolor:red%7Clabel:D%7C49.193767,-123.083017&sensor=false")); 
       startActivity(is); 

LOGCAT: 04-04 20:58:34.765:W/dalvikvm(1082):threadid = 11:thread E/AndroidRuntime(1082):致命例外:AsyncTask#1 04-04 20:58:34.805:E/AndroidRuntime(1082):java .lang.RuntimeException:执行doInBackground()时发生错误 04-04 20:58:34.805:E/AndroidRuntime(1082):at android.os.AsyncTask $ 3.done(AsyncTask.java:299) 04-04 20:58:34.805:E/AndroidRuntime(1082):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 04-04 20:58:34.805:E/AndroidRuntime(1082):在java。 util.concurrent.FutureTask.setException(FutureTask.java:219) 04-04 20:58:34.805:E/AndroidRuntime(1082):在java.util.concurrent.FutureTask.run(FutureTask.java:239) 04 -04 20:58:34.805:E/AndroidRuntime(1082):at android.os.AsyncTask $ SerialExecutor $ 1.run(Async Task.java:230) 04-04 20:58:34.805:E/AndroidRuntime(1082):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 04-04 20:58:34.805: E/AndroidRuntime(1082):在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:573) 04-04 20:58:34.805:E/AndroidRuntime(1082):在java.lang.Thread。运行(Thread.java:856) 04-04 20:58:34.805:E/AndroidRuntime(1082):导致:java.lang.NullPointerException 04-04 20:58:34.805:E/AndroidRuntime(1082)在com.example.distancemap.MainActivity.ShowMap(MainActivity.java:94) 04-04 20:58:34.805:E/AndroidRuntime(1082):at com.example.distancemap.MainActivity $ TestGoogleMaps.doInBackground(MainActivity.java :67) 04-04 20:58:34.805:E/AndroidRuntime(1082):at com.example.distancemap.MainActiv ity $ TestGoogleMaps.doInBackground(MainActivity.java:1) 04-04 20:58:34.805:E/AndroidRuntime(1082):at android.os.AsyncTask $ 2.call(AsyncTask.java:287) 04-04 20 :58:34.805:E/AndroidRuntime(1082):在java.util.concurrent.FutureTask.run(FutureTask.java:234) 04-04 20:58:34.805:E/AndroidRuntime(1082):... 4更多

+0

你可能想logcat的输出添加到您的问题。 – 2013-04-04 20:43:57

+0

我刚加了logcat – CanucksGirl 2013-04-04 21:01:02

回答

0

问题很明显。你有NPE在你的代码:

E/AndroidRuntime(1082): Caused by: java.lang.NullPointerException 04-04 
20:58:34.805: E/AndroidRuntime(1082): at 
com.example.distancemap.MainActivity.ShowMap(MainActivity.java:94) 

猜测这是你的线94:

Log.v(loc.toString(),"this is loc"); 
+0

请原谅我的无知。我很新。什么是NPE,我应该怎么做? – CanucksGirl 2013-04-04 21:22:14

+0

哦空指针? – CanucksGirl 2013-04-04 21:22:35

+0

但事情是它在单独工作,为什么现在这个错误 – CanucksGirl 2013-04-04 21:23:07

相关问题