我是相當新的Android編程,並一直在尋找一些指針來解決這個問題,但我似乎無法得到確切的問題。在onCreate,NullPointerException似乎無法找到調試後的原因
我想我只是需要一些指針爲什麼會拋出一個NullPointerException,以便我可以在將來自己追蹤它。
相關的代碼的一些片段:
private static final long TWO_MINUTES = 1000 * 60 * 2;
private static final long TEN_SECONDS = 10000;
private static final float TEN_METERS = 10;
public static final String LOG_TAG = "Locally";
private static LocationManager locMan;
Button StopButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(getApplicationContext(), "Attempting to start service",
Toast.LENGTH_SHORT);
startService(new Intent(LocallyActivity.this, LocallyService.class));
StopButton = (Button) findViewById(R.id.button1);
LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
double lat = 0;
double longi = 0;
TextView t = (TextView) findViewById(R.id.textView1);
Criteria crit = new Criteria();
String strLoc = locMan.getBestProvider(crit, true);
Location lastKnown = locMan.getLastKnownLocation(strLoc);
if (lastKnown != null) {
lat = lastKnown.getLatitude();
longi = lastKnown.getLongitude();
long tsLong = System.currentTimeMillis()/1000;
long lastTime = lastKnown.getTime();
long difference = tsLong - lastTime;
Time time = new Time();
time.set(Long.valueOf(lastTime));
t.setText("" + lat + ", " + longi + " (" + strLoc + ", time: "
+ time.hour + " " + time.minute + ")");
Object networkLocation = requestUpdatesFromProvider(strLoc, 32);
} else {
t.setText("No last location from " + strLoc);
}
}
private Location requestUpdatesFromProvider(final String provider,
final int errorResId) {
Location location = null;
Log.v(LOG_TAG, provider);
if (locMan.isProviderEnabled(provider)) {
locMan.requestLocationUpdates(provider, TEN_SECONDS, TEN_METERS,
listener);
location = locMan.getLastKnownLocation(provider);
} else {
Toast.makeText(this, errorResId, Toast.LENGTH_LONG).show();
}
return location;
}
和錯誤跟蹤:67
07-30 12:41:12.644: E/AndroidRuntime(20697): FATAL EXCEPTION: main
07-30 12:41:12.644: E/AndroidRuntime(20697): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.somnu.locally/com.somnu.locally.LocallyActivity}: java.lang.NullPointerException
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread.access$600(ActivityThread.java:123)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.os.Handler.dispatchMessage(Handler.java:99)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.os.Looper.loop(Looper.java:137)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread.main(ActivityThread.java:4424)
07-30 12:41:12.644: E/AndroidRuntime(20697): at java.lang.reflect.Method.invokeNative(Native Method)
07-30 12:41:12.644: E/AndroidRuntime(20697): at java.lang.reflect.Method.invoke(Method.java:511)
07-30 12:41:12.644: E/AndroidRuntime(20697): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-30 12:41:12.644: E/AndroidRuntime(20697): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-30 12:41:12.644: E/AndroidRuntime(20697): at dalvik.system.NativeStart.main(Native Method)
07-30 12:41:12.644: E/AndroidRuntime(20697): Caused by: java.lang.NullPointerException
07-30 12:41:12.644: E/AndroidRuntime(20697): at com.somnu.locally.LocallyActivity.requestUpdatesFromProvider(LocallyActivity.java:67)
07-30 12:41:12.644: E/AndroidRuntime(20697): at com.somnu.locally.LocallyActivity.onCreate(LocallyActivity.java:57)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.Activity.performCreate(Activity.java:4465)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
07-30 12:41:12.644: E/AndroidRuntime(20697): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
07-30 12:41:12.644: E/AndroidRuntime(20697): ... 11 more
線路是:
if (locMan.isProviderEnabled(provider)) {
和線是(LocallyActivity.java:67)? – Nermeen 2012-07-30 10:53:24
您是否在AndroidManifest.xml中添加了LocallyActivity? – Lucifer 2012-07-30 10:53:33
行號是例外是在com.somnu.locally.LocallyActivity.requestUpdatesFromProvider(LocallyActivity.java:67),你可以突出顯示並在代碼中張貼該行 – 2012-07-30 10:55:23