我是Android開發新手。我不知道爲什麼它會在那裏拋出一個NullPointerException,如果我沒有在那裏放置一個斷點的話。只有當我沒有放置斷點時,Android纔會拋出NullPointerExpception
Button btnFtpDownload = (Button) this.findViewById(R.id.downloadFtpButton);
if (btnFtpDownload != null){
btnFtpDownload.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Log.d(TAG,"Download click");
Message msg = new Message();
downloader.start();
msg.obj = "start";
downloader.mHandler.sendMessage(msg); //throws a NullPointerException if no breakpoint there
}
});
}
錯誤:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Handler.sendMessage(android.os.Message)' on a null object reference
UPDATE
downloader
是Thread類的一個瞬間。 Link到codehare.io中的類(因爲它是一個非常長的類,所以Stack Overflow不允許我在這裏發佈)
發佈您定義下載程序的代碼。 –
看起來像一個競爭條件。 'downloader' init可能發生在另一個線程上,並且不會完成,除非添加斷點來暫停當前線程。 – laalto