Robotium이라는 Opensource UI Test Tool을 이용해 사내에서 개발중인 App을 테스트 중입니다.
Activity에서 Async를 통해 Server의 데이터를 파싱한 뒤 ViewPager 등의 컴포넌트를 설정하는 구조인데,
다음과 같은 에러메시지가 나타납니다.
tag : dalvikvm
Class resolved by unexpected DEX: Lnet/ion/android/eform/sync/ResourceLoadSync;(0x4067c270):0x1a31b8 ref
[Landroid/support/v4/view/ViewPager;] Landroid/support/v4/view/ViewPager;(0x4067c270):0x197828
(L(Package)/sync/ResourceLoadSync; had used a different Landroid/support/v4/view/ViewPager; during pre-verification)
threadid=1: thread exiting with uncaught exception (group=0x4001c798)
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
at (Package).sync.ResourceLoadSync.onPostExecute(ResourceLoadSync.java:159)
at (Package).sync.ResourceLoadSyc.onPostExecute(ResourceLoadSync.java:1)
at android.os.AsyncTask.finish(AsyncTask.java:590)
at android.os.AsyncTask.access$600(AsyncTask.java:149)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:603)
특히 위에 강조한 구문이 제일 이해가 되지 않는데요.
무엇이 문제일까요...
레이아웃 xml에서는 패키지 view를 참조했고, 코드상에는 레이아웃의 view를 참조(findView)를 이용해
연결했는데, 뭐가 다르다는건지...;;;
자문 자답이네요...
별도의 프로젝트를 만들고 연계 프로젝트로 설정 한 뒤, viewPager 패키지를 넣어놨었네요.
테스트케이스 프로젝트의 ViewPager는 자신의 패키지의 ViewPager를 가리키는데,
실제 프로젝트에선 또 그 프로젝트 내에 존재하는 패키지를 가리키다보니 다르다고 나올 수 밖에요... ㅠㅠ
결국 앱 프로젝트내에 테스트케이스 패키지 만들어서 돌려버렸습니다 ^^;