응용 프로그램을 다시 시작할 때 NullPointerException 나열

나이트 워치

나는 현재 SMS 응용 프로그램을 개발하려고 시도하고 있으며 실행되고 메시지를 검색 할 수 있지만 응용 프로그램을 닫고 다시 시작하면 강제로 닫히고 NullPointerException이 있다고 말합니다. 다음은 오류 로그입니다. 목록이 이유 일 수 있지만 이유를 모르겠습니다. StackOverflow는 추가 정보를 추가하지 않고 게시 할 수 없습니다.

08-08 16:08:17.317 9977-9977/backdev.messages E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: backdev.messages, PID: 9977
                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{backdev.messages/backdev.messages.MessageActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
                                                                at android.app.ActivityThread.access$900(ActivityThread.java:153)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5451)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                             Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
                                                                at backdev.messages.MessageActivity.refreshSMSInbox(MessageActivity.java:136)
                                                                at backdev.messages.MessageActivity.getPermissionToReadSMS(MessageActivity.java:118)
                                                                at backdev.messages.MessageActivity.onCreate(MessageActivity.java:78)
                                                                at android.app.Activity.performCreate(Activity.java:6323)
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 
                                                                at android.app.ActivityThread.access$900(ActivityThread.java:153) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                at android.os.Looper.loop(Looper.java:148) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5451) 
                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

내 코드는 다음과 같습니다.

private static final int READ_SMS_PERMISSIONS_REQUEST =1;
private Context mContext = MessageActivity.this;
private static final String TAG = "MessageActivity";

private List<PreviewMessage> mPreviewMessages;
private RecyclerView rvMessages;
private static MessageActivity inst;
private RecyclerView.Adapter mMessagesAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_message);

    rvMessages = (RecyclerView) findViewById(R.id.rvMessages);
    rvMessages.setHasFixedSize(true);
    rvMessages.setLayoutManager(new LinearLayoutManager(mContext));

    getPermissionToReadSMS();
    mPreviewMessages = new ArrayList<>();
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)
            != PackageManager.PERMISSION_GRANTED) {
        getPermissionToReadSMS();
    } else {
        refreshSMSInbox();
    }

}

public void getPermissionToReadSMS(){
    Log.d(TAG, "getPermissionToReadSMS: getting permission");
    if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_SMS)!= PackageManager.PERMISSION_GRANTED){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            // Should we show an explanation?
            if (shouldShowRequestPermissionRationale(Manifest.permission.READ_SMS)){
                Log.d(TAG, "getPermissionToReadSMS: requesting Permission again");
                // Show an explanation to the user *asynchronously* -- don't block
                // this thread waiting for the user's response! After the user
                // sees the explanation, try again to request the permission.
                Toast.makeText(mContext,"Application will not work without this permission", Toast.LENGTH_SHORT).show();

                requestPermissions(new String[]{Manifest.permission.READ_SMS},READ_SMS_PERMISSIONS_REQUEST);
            }
            // No explanation needed, we can request the permission.
            //display explanation first --- not yet done
            Log.d(TAG, "getPermissionToReadSMS: requestPermission");
            requestPermissions(new String[]{Manifest.permission.READ_SMS},READ_SMS_PERMISSIONS_REQUEST);
        }
    }else{
            refreshSMSInbox();

    }

}

private void refreshSMSInbox() {
    ContentResolver contentResolver = getContentResolver();
    Cursor smsInboxCursor = contentResolver.query(Uri.parse("content://sms/inbox"),null,null,null,null);
    int indexBody = smsInboxCursor.getColumnIndex("body");
    int indexAddress = smsInboxCursor.getColumnIndex("address");
    while (smsInboxCursor.moveToNext()) {

        PreviewMessage previewMessage = new PreviewMessage(smsInboxCursor.getString(indexAddress),smsInboxCursor.getString(indexBody),  1);

        /*
        ERROR HERE
         */
        mPreviewMessages.add(previewMessage);

    }

    mMessagesAdapter = new MessagesAdapter(mPreviewMessages,mContext);

    rvMessages.setAdapter(mMessagesAdapter);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode){
        case 1:
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                //granted do things here
                //read sms
                refreshSMSInbox();

            }else {

            }
    }
}
akshay_shahane

데이터를 추가하기 전에 목록을 초기화하십시오. 때문에 getPermissionToReadSMS();통화 refreshSMSInbox (); '시도를 초기화하기 전에 목록에 데이터를 추가 할 OS는 마시 멜로보다 낮은 경우

mPreviewMessages = new ArrayList<>();
getPermissionToReadSMS();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

응용 프로그램을 시작할 때 아이콘이 없습니다.

분류에서Dev

응용 프로그램을 시작할 때 아이콘이 없습니다.

분류에서Dev

Java로 로그온 할 때 응용 프로그램 시작

분류에서Dev

응용 프로그램을 처음 시작할 때 대화 상자 표시

분류에서Dev

응용 프로그램이 열려있을 때 푸시 알림이 작동하지 않습니다?

분류에서Dev

응용 프로그램이 시작될 때 작업 표시 줄에 나타나지 않고 기본 응용 프로그램 뒤에 남아 있습니다.

분류에서Dev

C #에서 Unity를 사용하여 다시 시작할 때 응용 프로그램 다시 시작

분류에서Dev

WhatsApp 지문 화면과 같은 백그라운드에서 응용 프로그램이 다시 시작될 때 스플래시 화면을 열 때마다

분류에서Dev

ASP.NET WebForms 웹 응용 프로그램의 모든 사용자에 대해 하나의 Interop Office 응용 프로그램을 유지 (IIS를 다시 시작할 때까지)

분류에서Dev

내부 NPE는 자바 FX 응용 프로그램을 시작할 때

분류에서Dev

WPF 응용 프로그램을 시작할 때 App_Startup () VS OnStartup ()

분류에서Dev

ASP.NET MVC 4 응용 프로그램을 시작할 때 코드 실행

분류에서Dev

응용 프로그램을 처음 열 때 조건부 페이지 표시

분류에서Dev

Tycho로 빌드 된 Eclipse 응용 프로그램을 시작할 때 "응용 프로그램 서비스를 얻을 수 없습니다"오류

분류에서Dev

Windows는 GTA 및 기타 게임 응용 프로그램을 시작할 때 볼륨을 낮 춥니 다.

분류에서Dev

특정 응용 프로그램이 열릴 때 타이머 시작 / 중지

분류에서Dev

Eclipse에서 Java 응용 프로그램을 시작할 때 오류가 발생했습니다.

분류에서Dev

WPF 응용 프로그램을 시작할 때 액세스가 거부되었습니다.

분류에서Dev

응용 프로그램을 다시 실행할 때마다 응용 프로그램에 로그인 할 수 없습니다.

분류에서Dev

사용자가 다른 exe 파일 / 프로그램을 시작할 때 C # winforms 프로그램에서 감지

분류에서Dev

특정 응용 프로그램이 종료 될 때까지 기다린 다음 다른 응용 프로그램을 시작하십시오.

분류에서Dev

시작 화면 후 응용 프로그램이 충돌합니다 (메뉴 화면이 나타날 때).

분류에서Dev

응용 프로그램을 시작할 수 없음-X에 대한 연결을 열 수 없습니다.

분류에서Dev

Play Framework 2.4 응용 프로그램을 시작할 때 신비한 주입 오류 메시지

분류에서Dev

응용 프로그램은 다시 시작할 때까지 시스템 시간대 변경 사항을 보지 못합니다.

분류에서Dev

Microsoft Store에서 설치된 응용 프로그램을 사용할 때 소리가 나지 않습니다.

분류에서Dev

Phusion Passenger 웹 응용 프로그램을 시작할 수 없거나 잘못된 루비를 선택합니다.

분류에서Dev

스프링 부팅 응용 프로그램을 시작할 때 왜 GSON 빌더 에러가 발생합니까?

분류에서Dev

응용 프로그램을 시작할 때 WM_CLASS를 어떻게 할당합니까?

Related 관련 기사

  1. 1

    응용 프로그램을 시작할 때 아이콘이 없습니다.

  2. 2

    응용 프로그램을 시작할 때 아이콘이 없습니다.

  3. 3

    Java로 로그온 할 때 응용 프로그램 시작

  4. 4

    응용 프로그램을 처음 시작할 때 대화 상자 표시

  5. 5

    응용 프로그램이 열려있을 때 푸시 알림이 작동하지 않습니다?

  6. 6

    응용 프로그램이 시작될 때 작업 표시 줄에 나타나지 않고 기본 응용 프로그램 뒤에 남아 있습니다.

  7. 7

    C #에서 Unity를 사용하여 다시 시작할 때 응용 프로그램 다시 시작

  8. 8

    WhatsApp 지문 화면과 같은 백그라운드에서 응용 프로그램이 다시 시작될 때 스플래시 화면을 열 때마다

  9. 9

    ASP.NET WebForms 웹 응용 프로그램의 모든 사용자에 대해 하나의 Interop Office 응용 프로그램을 유지 (IIS를 다시 시작할 때까지)

  10. 10

    내부 NPE는 자바 FX 응용 프로그램을 시작할 때

  11. 11

    WPF 응용 프로그램을 시작할 때 App_Startup () VS OnStartup ()

  12. 12

    ASP.NET MVC 4 응용 프로그램을 시작할 때 코드 실행

  13. 13

    응용 프로그램을 처음 열 때 조건부 페이지 표시

  14. 14

    Tycho로 빌드 된 Eclipse 응용 프로그램을 시작할 때 "응용 프로그램 서비스를 얻을 수 없습니다"오류

  15. 15

    Windows는 GTA 및 기타 게임 응용 프로그램을 시작할 때 볼륨을 낮 춥니 다.

  16. 16

    특정 응용 프로그램이 열릴 때 타이머 시작 / 중지

  17. 17

    Eclipse에서 Java 응용 프로그램을 시작할 때 오류가 발생했습니다.

  18. 18

    WPF 응용 프로그램을 시작할 때 액세스가 거부되었습니다.

  19. 19

    응용 프로그램을 다시 실행할 때마다 응용 프로그램에 로그인 할 수 없습니다.

  20. 20

    사용자가 다른 exe 파일 / 프로그램을 시작할 때 C # winforms 프로그램에서 감지

  21. 21

    특정 응용 프로그램이 종료 될 때까지 기다린 다음 다른 응용 프로그램을 시작하십시오.

  22. 22

    시작 화면 후 응용 프로그램이 충돌합니다 (메뉴 화면이 나타날 때).

  23. 23

    응용 프로그램을 시작할 수 없음-X에 대한 연결을 열 수 없습니다.

  24. 24

    Play Framework 2.4 응용 프로그램을 시작할 때 신비한 주입 오류 메시지

  25. 25

    응용 프로그램은 다시 시작할 때까지 시스템 시간대 변경 사항을 보지 못합니다.

  26. 26

    Microsoft Store에서 설치된 응용 프로그램을 사용할 때 소리가 나지 않습니다.

  27. 27

    Phusion Passenger 웹 응용 프로그램을 시작할 수 없거나 잘못된 루비를 선택합니다.

  28. 28

    스프링 부팅 응용 프로그램을 시작할 때 왜 GSON 빌더 에러가 발생합니까?

  29. 29

    응용 프로그램을 시작할 때 WM_CLASS를 어떻게 할당합니까?

뜨겁다태그

보관