30/09/2018, 17:38

Gặp lỗi `java.lang.NullPointerException: println needs a message` khi sử dụng Thread trong Android

Cho em hỏi là sao em lại bị lỗi java.lang.NullPointerException: println needs a message khi em chạy cái thread. Cái Log đầu ( Luồng xử lí lệnh … ) hoạt động bình thường nhưng sau đó thì tạch luôn.

Mong bác nào biết chỉ giáo cho.

Code:

public void timkiemcaulenh(final String x) {
    Thread th = new Thread(new Runnable() {

        @Override
        public void run() {
            Log.e("Luồng xử lí lệnh "+x, "-------------");
            String s  = x;
            s=s.trim();
            s=s.toLowerCase();
            s=xoakhoangtrang(s);
            Log.e("tìm xâu s:"+s,share2.getString(s, null));
            if(share2.getString(s, null).equals(null)==false){
                String[] temp= null;
                temp=s.split(" ");
                for(int i = 0; i<temp.length;i++){
                    Log.e("so sánh "+x +" số dc add thứ "+i+"  là:", temp[i]);
                    count[Integer.parseInt(temp[i])]++;
                    if(count[Integer.parseInt(temp[i])]>max){
                        max=count[Integer.parseInt(temp[i])];
                        maxpoint=i;
                    }
                }
            }
        }
    });

    th.start();
}
Quân viết 19:53 ngày 30/09/2018

Lỗi ở dòng nào bạn? Hỏi thế này chịu
Cái share2 tự nhiên chui ra ở đâu vậy?

Có ba vấn đề:

  1. Bạn nên đọc lại tài liệu để hiểu về Log.e(); (Sử dụng TAG tồi quá… :’( )
  2. Bạn nên học debug để hiểu được code của mình đang làm gì.
  3. Bạn nên hiểu về split

Lỗi của bạn mình đoán chắc phần lớn là nằm ở đây:

Log.e("so sánh "+x +" số dc add thứ "+i+"  là:", temp[i]);

Trong code của Log thì tham số thứ hai không thể null. Nếu null nó sẽ báo lỗi như trên.

Solution: String.valueOf();

viết 19:55 ngày 30/09/2018

À z mình cảm ơn bạn nhiều

Bài liên quan
0