java.lang.IncompatibleClassChangeError: The method 'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected()' was expected to be of type interface but instead was found to be of type virtual (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)


이렇게 나옵니다.


원인

GoogleApiClient 객체의 클래스 타입이 Google Play Services 8.1부터 interface에서 abstract class로 바뀌었습니다.

이 객체를 사용하는 로직을 jar로 포장해 사용하는데, 바뀌지 않은 jar 파일 입장은 여전히 저 객체가 interface인 줄 알고 있습니다. 그래서 jar 파일이 알고 있는 클래스 타입과 실제 클래스 타입이 맞지 않아 exception이 발생했습니다.


해결 방법

GoogleApiClient를 사용하는 로직이 포함된 jar 파일을 Google Play Services 업데이트 후 다시 빌드하면 해결됩니다.

RSS :
Response
0 Trackbacks 0 Comments