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できない理由を私は知らない。ここ はコードです。ご助力ありがとうございます。
メインビューにwebviewという名前のWebViewがありますか? – ByteMe
@ByteMe:OOOOOOいいえいいえ!私がしたことは恐ろしいです!私はそれに気付かなかったのですか?大変ありがとうございました。どのような間違い! Pfff – androniennn
@ByteMe:あなたはその投稿に答えることができ、私は将来のためにそれを受け入れるだろう;)。ありがとうございました :)。 – androniennn