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 |
뒤로가기 버튼을 눌렀을 때 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 |