xzing 라이브러리를 이용한 QR코드 구현중 발생한 에러.

error 내용

1
2
3
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=49374, result=0, data=null} to activity 
{com.example.qrcodetest/com.example.qrcodetest.ActivityMain}: java.lang.IllegalArgumentException: 
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent

 

1
2
3
4
5
6
    override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) {
        if (resultCode == Activity.RESULT_OK) {
            val scanResult:IntentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent)
           // some code
        }
    }
cs
cs

뒤로가기 버튼을 눌렀을 때 this.finish() 를 호출하여 현재 액티비티를 종료하게 만들었는데

맨 처음 activity-> activity 구현시엔 아무런 오류가 없었던 게

activity->view로 바꾸니 갑자기 RuntimeException, IllegalArgumentException를 보냈다.

해당 액티비티가 종료되면 onActivityResult 메소드가 무조건 호출되는 방식인데

QR코드를 찍지 않고 뒤로가기를 눌러 종료하였을 때 data가 null값인게 문제가 되었던것이다.

그래서 데이터를 받아오는 intent 변수에 nullable 기호인 ?를 붙여줬더니 정상작동 하였다.

(왜 activity->activity 였을땐 아무런 문제가 없었는지는 모름 ㅠ)

1
2
3
4
5
6
7
  override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
        if (resultCode == Activity.RESULT_OK) {
            val scanResult:IntentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent)
            //some code
            }
        }
    }
cs

+ Recent posts