본문으로 바로가기

[Android_App] Runtime error "cannot be cast to java.lang.Byte "

category Android_app 2023. 6. 21. 15:27

  : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Byte 에러 

 

▶ 아래와 같은 소스코드안의 if 문에서 발생을 했습니다.

fun getOnePacket(func:ByteArray,aData:ByteArray,dataLen:ByteArray,_timeout:Int):Int {
    ~~ 중략 ~~
	if(dataLen[0] == (0 as Byte))  <--- 요기

 

<해결책>

   :  .toInt() 구문을 사용하면 해결됨.

      런타임시 타입 케스팅이 아닌 Byte 형에서 Int 형으로 변환을 한후 비교를 해야 정상 동작합니다.

>> Int 형 비교
if(dataLen[0].toInt() == 0)

or 
>> Byte 형 비교
if(dataLen[0] == 0.toByte())

 

   : as 와 toInt 관련 코틀린 사이트 내용 첨부합니다.

as 

 

 toInt

 

참고하세요.

반응형