카테고리

  • 안드로이드
  • IOS
  • MFC
  • JAVA
  • AWS
  • LAMP
  • 여행&사진
  • 이런저런생활
  • 2015년 12월 3일 목요일

    [안드로이드]서비스 인텐트 생성할 때 오류

    java.lang.IllegalArgumentException: Service Intent must be explicit: Intent
    이러한 오류가 날 때는 인텐트의 오류임.

    안드로이드 5.0 롤리팝 버전부터
    인텐트 선언 시 명시적으로 선언하지 않으면 안되게끔 됐음.
    간단하게 버튼 클릭했을 때의 예를 보면

    bt_svcStart.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //** 정상 작동
                    Intent service = new Intent(getApplicationContext(), BoundService.class);
                    service.setPackage("com.example.worrick.testheadsup");
                    startService(service);
                    //**
                   
                    //** 에러 발생
                    // startService(new Intent("com.example.worrick.testheadsup"));
                   // **
                }
            });

    위의 정상 작동 코멘트를 달아 놓은 것 처럼 인텐트를 선언해야 함.
    에러 발생 코멘트처럼 할 경우에는 말 그대로 에러 발생...
    인텐트 생성도 안될 뿐 더러 어플리케이션에서 에러 뿜어댐.
    5시간의 삽질로 알아낸 결과...

    댓글 2개 :