2012-02-29 2 views
0

this project 잘 알고 commonsware입니다. 나는 그것을 실행하려고하지만 난이 NullPointer 예외가 있습니다 을 여기에 코드입니다 :WebMap 활동을 시작할 수 없습니다. (NullPointerException)

public class WebMapActivity extends Activity { 
     private static String PROVIDER="gps"; 
     private WebView browser; 
     private LocationManager myLocationManager=null; 

     @Override 
     public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     browser=(WebView)findViewById(R.id.webview); 

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

     browser.getSettings().setJavaScriptEnabled(true); 
     browser.addJavascriptInterface(new Locater(), "locater"); 
     browser.loadUrl("http://gmaps-samples.googlecode.com/svn/trunk/articles-android-webmap/simple-android-map.html"); 
     } 

     @Override 
     public void onResume() { 
     super.onResume(); 
     myLocationManager.requestLocationUpdates(PROVIDER, 0, 
                0, 
                onLocation); 
     } 

     @Override 
     public void onPause() { 
     super.onPause(); 
     myLocationManager.removeUpdates(onLocation); 
     } 

     LocationListener onLocation=new LocationListener() { 
     public void onLocationChanged(Location location) { 
      StringBuilder buf=new StringBuilder("javascript:whereami("); 

      buf.append(String.valueOf(location.getLatitude())); 
      buf.append(","); 
      buf.append(String.valueOf(location.getLongitude())); 
      buf.append(")"); 

      browser.loadUrl(buf.toString()); 
     } 

     public void onProviderDisabled(String provider) { 
      // required for interface, not used 
     } 

     public void onProviderEnabled(String provider) { 
      // required for interface, not used 
     } 

     public void onStatusChanged(String provider, int status, 
             Bundle extras) { 
      // required for interface, not used 
     } 
     }; 

     public class Locater { 
     public String getLocation() throws JSONException { 
      Location loc=myLocationManager.getLastKnownLocation(PROVIDER); 

      if (loc==null) { 
      return(null); 
      } 

      JSONObject json=new JSONObject(); 

      json.put("lat", loc.getLatitude()); 
      json.put("lon", loc.getLongitude()); 

      return(json.toString()); 
     } 
     } 
    } 

로그 캣 :이 활동을 launchs 수없는 이유

02-29 22:10:35.096: E/AndroidRuntime(885): FATAL EXCEPTION: main 
02-29 22:10:35.096: E/AndroidRuntime(885): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gatec.tunisiana/com.android.airplane.WebMapActivity}: java.lang.NullPointerException 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.os.Looper.loop(Looper.java:130) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-29 22:10:35.096: E/AndroidRuntime(885): at java.lang.reflect.Method.invokeNative(Native Method) 
02-29 22:10:35.096: E/AndroidRuntime(885): at java.lang.reflect.Method.invoke(Method.java:507) 
02-29 22:10:35.096: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-29 22:10:35.096: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-29 22:10:35.096: E/AndroidRuntime(885): at dalvik.system.NativeStart.main(Native Method) 
02-29 22:10:35.096: E/AndroidRuntime(885): Caused by: java.lang.NullPointerException 
02-29 22:10:35.096: E/AndroidRuntime(885): at com.android.airplane.WebMapActivity.onCreate(WebMapActivity.java:26) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-29 22:10:35.096: E/AndroidRuntime(885): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
02-29 22:10:35.096: E/AndroidRuntime(885): ... 11 more 

는 모르겠어요. 당신의 도움을 주셔서 대단히 감사합니다.

+2

main.xml에 webview라는 WebView가 있습니까? – ByteMe

+0

@ByteMe : OOOOOO 아니 아니요! 내가 한 짓은 끔찍한거야! 내가 어떻게 알아 차리지 못 했니? 대단히 고마워. 무슨 실수 야 !! Pfff – androniennn

+0

@ByteMe : 게시물에 답변 할 수 있으며 나중에 사용할 수 있도록 허용 할 것입니다. 고맙습니다 :). – androniennn

답변

1

당신이 대답했기 때문에 기쁘게 생각합니다. 나중에 참조 할 수 있도록 로그를보십시오. 나는 당신이 그 (것)들을 배치했다는 것을 알고있다 그러나 진짜 응답은 처음부터 끝까지 같이이다. 두 번째 줄에

02-29 22:10:35.096: E/AndroidRuntime(885): Caused by: java.lang.NullPointerException 
02-29 22:10:35.096: E/AndroidRuntime(885): at com.android.airplane.WebMapActivity.onCreate(WebMapActivity.java:26) 

그것은 .WebMapActivity.onCreate(WebMapActivity.java:26) 그래서 당신이 그 라인에 라인 (26)으로 이동에서에서 onCreate()에서 WebMapActivity에 알고 그 라인에 중요한 null 값이 무엇인지 알아 말한다.

처럼 ByteMe 말했다 ... 발견 할 웹보기가 없다고하지 않는 한 그 선에서

browser=(WebView)findViewById(R.id.webview); 

아무것도는, NullPointerException을 일으킬 수 없었다.

+0

고맙습니다. :). 이제 문제는지도를 미리 정의 된 지점으로 중앙에 배치하는 방법과 오버레이를 추가하는 방법을 알 수 없기 때문입니다. 전에 Map API V3를 사용하지 않았습니다 ... – androniennn

+0

Map API를 사용하여 실제로 작업 한 적이 없습니다. 확신 할 수는 없지만이 대답을 얻으려면 다른 질문을 만들어야 할 것입니다. 아무도 Map API 질문에 대답하기를 희망하는 NullPointerQuestion을 방황하지 않을 것이기 때문입니다. 나는 주변을 둘러 볼 것이고, 무엇이라도 발견하면 나는 당신에게 올바른 방향으로 향하게하려고 노력할 것이다. 하지만 네가 무엇을 요구하는지 완전히 확신하지 못한다. 어떤 점에서 센터를 의미합니까? 레이아웃을 사용하여 레이아웃 항목을 집중시킬 수 있습니다. – Rawr

+0

지도를 시작하면 특정 시점에 중심을 맞 춥니 다. 도와 주셔서 감사합니다. – androniennn

관련 문제