2015-07-19 83 views
0

我想在TextView上設置文本,我在手機上得到一個錯誤,並在LogCat中我得到的是標籤:androidruntime,text:at com.examp ... onPostExecute(AsyncSomething。 JAVA)。 這裏是我的僞代碼:錯誤在AsyncTask onPostExecute

TextView display_car_tv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     display_name_tv = (TextView) findViewById(R.id.display_name_tv); 
..... 
    setContentView(R.layout...); 
} 

我有一個按鈕,受影響的僅是做了梅索德:

new AsyncSomething(this,display_car_tv).execute(); 

AsyncSomething的代碼:

private Context context; 
    private TextView tv; 
    public AsyncSomethin(Context context, TextView tv){ 
     this.context=context; 
     this.tv=tv; 
    } 

    protected String doInBackground(String...arg0){ 
      //some code that works 
      return sb.toString(); 
    } 

    protected void onPreExecute() {} 
    @Override 
    protected void onPostExecute(String result){ 
     this.tv.append(result); 
    } 

我該怎麼辦錯誤? 如何從LogCat獲取更多信息?

PS:對不起,沒有給出整個代碼,但它是不相關的。

+0

發佈完整堆棧跟蹤。 – JohanShogun

+0

感謝您的-1,我不能發佈完整的跟蹤,我敢肯定,對於6.5行代碼,有一些人將能夠幫助我 – Upsilon42

+0

您的logcat應該始終有完整的堆棧跟蹤如果你的手機是本地連接的,而你實際上在終端上使用「adb logcat」而不是使用android studio/eclipse。歡迎來到-1。如果這是一個遠程崩潰,並且您沒有複製它,您將不得不重現它以確保您修復它。 – JohanShogun

回答

2

從您發佈的代碼我發現唯一的錯誤,可能導致您的應用程序崩潰爲NullPointerException,是您使用findViewById之前setContentView。在每個findViewById之前,您始終要撥打setContentView否則您將不會找到任何小部件

+0

謝謝,實際上它總是讓我忘記這一點。我會在2525年x完成我的應用程序,無論如何,解決。 – Upsilon42

+0

不客氣 – Blackbelt