2012-02-29 8 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()); 
     } 
     } 
    } 

Logcat:

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 

それが活動をlaunchsできない理由を私は知らない。ここ はコードです。ご助力ありがとうございます。

+2

メインビューにwebviewという名前のWebViewがありますか? – ByteMe

+0

@ByteMe:OOOOOOいいえいいえ!私がしたことは恐ろしいです!私はそれに気付かなかったのですか?大変ありがとうございました。どのような間違い! Pfff – androniennn

+0

@ByteMe:あなたはその投稿に答えることができ、私は将来のためにそれを受け入れるだろう;)。ありがとうございました :)。 – androniennn

答えて

1

幸いです。将来の参照のために、あなたのログを見てください。私はあなたがそれらを投稿したことを知っていますが、本当の答えは途中のようです。 2行目に

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同様

は言った...発見される何のWebViewがなかった場合を除き、その行で

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

何も、NullPointerExceptionが生じない可能性があります。

+0

ありがとうございました。問題は今、私はマップをあらかじめ定義されたポイントの中心に置く方法とオーバーレイを追加する方法を知らないです。以前はMap API V3を使用したことがありませんでした。 – androniennn

+0

Map APIを使って作業していませんでした。私は確信していませんが、Map APIの質問に答えることを望んでいるNullPointerQuestionで誰も回っていないので、おそらくこの答えを得るために別の質問を作成する必要があると思います。私は周りを見回し、私が何かを見つけたら、私はあなたに正しい方向に向けるように試みます。しかし、私はあなたが何を求めているかを完全には確信していません。あなたは一点でセンターを意味しますか?レイアウトを使用して、レイアウト項目を集中させることができます。 – Rawr

+0

私は地図を起動するときに、それは特定のポイントに集中することを意味します。助けてくれてありがとう。 – androniennn

関連する問題