Cocos2d-x Plugin-X gameDevGuide.sh 실행 후 jar lib missing 이슈
Cocos2d-x 플러그인X의 게임 개발자 가이드 툴인 gameDevGuide.sh 를 실행하면 자동으로 안드로이드 프로젝트 설정과 관련 된 것을 변경해줍니다. 테스트로 flurry와 admob을 사용하게 설정 후 이클립스를 실행해보니 아래와 같이 jar 파일을 못 찾는 에러가 발생하네요.
Description Resource Path Location Type
The project cannot be built until build path errors are resolved AdMobTestGame Unknown Java Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/admob/android/libPluginAdmob.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/admob/android/GoogleAdMobAdsSdk.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/protocols/android/libPluginProtocol.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/flurry/android/libPluginFlurry.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/flurry/android/FlurryAgent.jar' AdMobTestGame Build path Build Path Problem
파일들이 모두 plugin-x 하위 폴더에서 찾고 있길래 어떤 파일에 설정이 되어있나 찾아보니 아래와 같이 .classpath에 설정되어 있더군요.
Classes, cocos2dx, extensions, scripting 등도 정의되어 있는데 이클립스에서는 아래 그림에서처럼 Resource - Linked Resources 탭에 있더군요. 그런데 파일에는 있는 plugin-x가 안보입니다. 그래서 파일을 못 찾는거 같네요.
<link><name>plugin-x</name><type>2</type><locationURI>d:/cocos2d-x-3.0alpha1/plugin/publish</locationURI></link>
.project 파일에 위와 같이 정의 된 것중 locationURI 태그를 location으로 바꿔주고 저장 후 이클립스에서 확인하면 아래와 같이 정상적으로 인식하고 에러도 없더군요.
아마 절대 경로는 location으로 해주고 상대경로는 locationURI로 하는 것 같습니다. 이렇게 수정해줘도 매 프로젝트마다 이렇게 해줘야하니 plugin\tools\toolsForGame\modifyProject.py 파일에서 15라인에 있는 아래 내용중 URI를 빼면 될 듯 하네요.
locEle = ET.Element('locationURI')
Description Resource Path Location Type
The project cannot be built until build path errors are resolved AdMobTestGame Unknown Java Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/admob/android/libPluginAdmob.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/admob/android/GoogleAdMobAdsSdk.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/protocols/android/libPluginProtocol.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/flurry/android/libPluginFlurry.jar' AdMobTestGame Build path Build Path Problem
Project 'AdMobTestGame' is missing required library: 'plugin-x/plugins/flurry/android/FlurryAgent.jar' AdMobTestGame Build path Build Path Problem
파일들이 모두 plugin-x 하위 폴더에서 찾고 있길래 어떤 파일에 설정이 되어있나 찾아보니 아래와 같이 .classpath에 설정되어 있더군요.
<classpathentry exported="true" kind="lib" path="plugin-x/protocols/android/libPluginProtocol.jar"/>
<classpathentry exported="true" kind="lib" path="plugin-x/plugins/flurry/android/FlurryAgent.jar"/>
<classpathentry exported="true" kind="lib" path="plugin-x/plugins/flurry/android/libPluginFlurry.jar"/>
<classpathentry exported="true" kind="lib" path="plugin-x/plugins/admob/android/GoogleAdMobAdsSdk.jar"/>
<classpathentry exported="true" kind="lib" path="plugin-x/plugins/admob/android/libPluginAdmob.jar"/>
.classpath를 수정하거나 이클립스 Java Build Path에서 수정을 해줘도 되지만 좀 더 근본적인 것을 찾아봤습니다. classpathentry에서 사용하는 plugin-x 라는게 어디에 정의되어 있나 찾아보니 아래 그림과 같이 .project 파일에 있었습니다.
Classes, cocos2dx, extensions, scripting 등도 정의되어 있는데 이클립스에서는 아래 그림에서처럼 Resource - Linked Resources 탭에 있더군요. 그런데 파일에는 있는 plugin-x가 안보입니다. 그래서 파일을 못 찾는거 같네요.
<link><name>plugin-x</name><type>2</type><locationURI>d:/cocos2d-x-3.0alpha1/plugin/publish</locationURI></link>
.project 파일에 위와 같이 정의 된 것중 locationURI 태그를 location으로 바꿔주고 저장 후 이클립스에서 확인하면 아래와 같이 정상적으로 인식하고 에러도 없더군요.
아마 절대 경로는 location으로 해주고 상대경로는 locationURI로 하는 것 같습니다. 이렇게 수정해줘도 매 프로젝트마다 이렇게 해줘야하니 plugin\tools\toolsForGame\modifyProject.py 파일에서 15라인에 있는 아래 내용중 URI를 빼면 될 듯 하네요.
locEle = ET.Element('locationURI')
댓글
댓글 쓰기