BLOG main image

분류 전체보기 (321)
free (36)
영화 (85)
드라마 (21)
게임 (28)
만화/책 (34)
개발 (46)
IT (68)
연예 (3)
Visitors up to today!
Today hit, Yesterday hit
TETRIS
rss
2014. 1. 6. 19:49

exitgames 의 Photon Server 를 분석하고 있는데, 안드로이드 클라이언트를 빌드한 후, 실행하려고 하면 계속 에러를 쏟아내는 현상이 발생했다.


I/dalvikvm(323): Failed resolving Lde/exitgames/demo/realtime/DemoService; interface 42 'Lde/exitgames/client/photon/IPhotonPeerListener;'

W/dalvikvm(323): Link of class 'Lde/exitgames/demo/realtime/DemoService;' failed

W/dalvikvm(323): VFY: unable to find class referenced in signature (Lde/exitgames/demo/realtime/DemoService;)


- 중략 - 


E/AndroidRuntime(323): FATAL EXCEPTION: main

E/AndroidRuntime(323): java.lang.NoClassDefFoundError: de.exitgames.demo.realtime.DemoService

E/AndroidRuntime(323): at de.exitgames.demo.realtime.RealtimeDemo.setMainScreen(RealtimeDemo.java:42)

E/AndroidRuntime(323): at de.exitgames.demo.realtime.RealtimeDemo.onCreate(RealtimeDemo.java:35)


빌드는 되는데, 실행이 안되는 것으로 보아 "라이브러리" 의 참조 문제일 것으로 예상하고, 온갖 설정을 바꿔 봤으나 아무런 소용이 없었다.


가장 많이 언급되는 것은,


ADT 가 v22 가 되면서, Android Private Libraries 가 추가 됐고,




Java Build Path 설정에서, Private Libraries 에 제대로 등록되어 있는지...



그리고, Order and Export 에서 체크가 되어 있는지를 확인해 보라는 것이었다.



이렇게 하면,

프로젝트 폴더의 .classpath 파일 내용이 아래와 같이 된다.




그 후 clean 하고, 다시 build 하면 정상 작동된다고 했는데...


난 몇 시간 동안 계속 실패 -_-


이클립스가 Indigo 라서 반항하는 걸까 싶어서 Kepler 까지 설치해서 해봤으나 소용 없음.


AVD 도 2.2.3 버전의 문제일까 싶어서, 3.x 와 4.x 대로 실험을 해봤으나 소용 없음.


온갖 삽질을 다 한 끝에... 


cocos2d-x 의 빌드가 실패하는 문제로 Android 4.4 (API 19) 를 지워버렸다는 사실이 떠올랐다.

http://tetris.tistory.com/396


그래서 API 와 SDK Build-tools 를 다시 설치했더니... 잘 됨...


덤으로, API 도 4.4 에서 4.4.2 로 올라갔는데, cocos2d-x 빌드 오류 문제 (Unable to execute dex: java.nio.BufferOverflowException) 도 사라졌다.