분명히 잘 넣어두고

 

Environment.getExternalStorageDirectory().getAbsolutePath();

 

해서 sd카드 경로도 구했는데 읽기가 안되고,

 

File.exist() 해도 false만 리턴되어 당황하셨죠?

 

저도 그랬습니다! 홍미노트2인가 4인데(뭔지도 안궁금) 이런 현상 나타나길래

 

삽질하다가 그냥 내부저장소 폴더명으로 exists() 해보니 true -_-;;;

 

그냥 내부저장소로 이용하십쇼.

 

폰 문제인지 안드로이드 보안문제인지 몰라도 이렇습니다.

 

더이상의 삽질은 naver.




장장 3일간의 개삽질 끝에 build 및 run 성공.

성공일 : 2015년 1월 30일







차마 기억도 다 나지않는 수많은 오류들을 헤쳐나가며 이뤄낸 성공입니다. 

과정이 전부 기억나지도 않네요(난개발).


일반적인 환경 세팅 순서를 자세히 적진 않고(일반적인 환경 세팅은 구글 검색해보시면 많습니다), 

저처럼 삽질하신 분들이 써먹을 자잘한 시도와 버전정보 포스팅하겠습니다.





===============================


환경 셋팅에 쓴 모든 개발환경, 툴, 유틸의 정보


OS : 윈도우7 64bit ( 이하 툴 중에 32/64bit 선택 가능한 경우 전부 64bit로 함)

코코스2d-x : 3.1.1 

android-ndk-r10d

apache-ant-1.9.4

jdk1.8.0_31

cygwin64

Android API 19 (4.4.2버전)

android-sdk : 모르겠네요.. 좀 신버전은 아닌데.. 3개월 전에 받은 것. (크게 영향 없을듯)

eclipse :  Kepler Service Release 1  2013년도꺼. (크게 영향 없을듯)





<가장 고생한 에러ㅠㅠ>


(cocos new로 생성한 개인 프로젝트 폴더)/proj.android/ 에서 명령어 python build_native.py 를 할때나,

이클립스에서 빌드할때나 cocos2d.h 를 찾을수 없다며 Build dynamic library for project Exception이 뜨더군요.

이걸 해결하기 위해 두가지 조치를 했더니 정상적으로 됐습니다.


첫째로, 현재 안정화 버전(final)인 cocos2d-x 3.3 대신 older version인 3.1.1 을 사용했습니다. 

cocos 홈피에서 older 버전 다운가능합니다.


둘째로, 폴더구조를 바꿨습니다.

기존에 

E:\cocos2d-x-3.3 따로

E:\mygame(내 프로젝트명) 따로였던 것을


아래와 같이,


E:\cocosproj\cocos2d-x-3.1.1 에 코코스sdk를 위치시킴.

E:\cocosProj\cocos2d-x-3.1.1\mygame(내 프로젝트명) 

프로젝트를 코코스sdk 안으로 넣어버렸습니다.



아무래도 단순 폴더구조 변경보다는 버전을 바꾼게 먹혀들었을 것 같네요.







선 해결책 : WebChromeClient의 onReceivedTitle() 콜백 메서드를 사용한다.




안드로이드 API 의 폭이 매우 넓기 때문에 다양한 해결책이 있을 수 있지만,

개인적으로 막혔던 부분을 해결하는 과정을 적어본다.


<시행착오>

구글 검색, 스택오버플로우 검색을 하면서 두가지 해결책을 시도해봤다.

WebViewClient의 콜백 메서드인 onPageStarted, onPageFinished인데, 이름에서 보이듯이

웹페이지 로딩 시작시와, 로딩 완료시에 호출되는 메서드다.

이 메서드 안에 title = view.getTitle(); 를 이용해서 title 가져오기 시도했으나

onPageStarted에서는 아무런 제목도 반환되지 않았고,

onPageFinished는 페이지 로딩이 완료를 기다려야 돼서,바로 제목처리를 할 수 없었다.

   



<최종 해결책>

WebChromeClient의 onReceivedTitle() 콜백 메서드를 사용한다.

새로운 제목이 들어오는 순간 호출되기 때문에 딜레이가 없다.


String title = new String();


 class webViewChrome extends WebChromeClient {

        

        @Override

        public void onReceivedTitle(WebView view, String title) {

            super.onReceivedTitle(view, title);

            if (!TextUtils.isEmpty(title)) {

            본인액티비티명.title = title;

            }

        }


}


http://stackoverflow.com/questions/18794638/android-webview-getfavicon-returning-null




선결론 : jar 파일 복사만 해주면 3분만에 해결됨.


안드로이드 개발을 갓 시작했을 때, 하루종일 고생시켰던 문제가 있는데,

프로젝트를 새로 생성 하자마자 아래 에러가 떴기 때문이다.


Errors (3 items)

The project cannot be built until build path errors are resolved

The project cannot be built until build path errors are resolved

The container 'Android Dependencies' references non existing library 'D:\develop\Android\tryandlearn\appcompat_v7\bin\appcompat_v7.jar'  Build path  Build Path Problem





당시에는 아무것도 몰라서 stackoverflow에서 몇몇 방법이랍시고 적어둔 걸 해봤었다.

라이브러리 잡고, 빌드패스 만지작한 후 메뉴-project-clean 반복. 결과는 전부 실패였다.

그래서 SDK와 딸려나온 이클립스 싹다 지우고, 기존에 있던 이클립스에 안드로이드 다운받아서

어쩌다가 되니까 그냥 넘어갔었다.


그런데 지금 새로 프로젝트를 생성한 뒤 또 에러메시지가 뜨는걸 보고 당황했으나,

침착하게 영어를 해석하고 빡!

안드로이드\프로젝명\appcompat_v7\bin 폴더로 가서 appcompat_v7.jar 파일이 없는걸 확인했다.

좀 뒤져보니 \bin 폴더가 아니라 \libs 폴더에 비슷한 이름 파일 두개가 있더라.

그래서 android-support-v7-appcompat.jar 이 파일을

\bin 폴더로 복사해주고 이름을 appcompat-v7로 변경해주었다. (걍 에러 메시지에서 나타난 대로)

그랬더니 해결됨.


예전에 하루종일 고생했던 걸 3분만에 해결하고나니 좀 허무하다 ㅋㅋㅋ





[결론]

안드로이드\프로젝명\appcompat_v7\libs 폴더의 android-support-v7-appcompat.jar 파일을

안드로이드\프로젝명\appcompat_v7\bin 폴더로 복사한 후, 

이름을 appcopat_v7.jar로 변경해주고,

메뉴-project-clean 빡 해주면 끝.



슈퍼맨








이클립스로 안드로이드 개발 중,

Ctrl+F11 실행하면 아래 Console 창에 아래와 같은 메시지가 뜰 때가 있다.


The connection to adb is down, and a severe error has occured.

You must restart adb and Eclipse.

Please ensure that adb is correctly located at '(작업폴더)\tools\adb.exe' and can be executed.



[이때 해결책]


1. 이클립스를 종료한다.

2. 도스창 CMD에서 (안드로이드 SDK 설치된 폴더) / platform-tools/ 폴더를 찾아간다.

3. adb kill-server 입력

4. adb start-server 입력

5. 에러 없이 ADB서버가 구동되면 된거임.

6. 이클립스 재실행해서 다시 연결 시도.


* 위의 방법으로도 안되면 재부팅후 다시 해본다.




출처 : http://stackoverflow.com/questions/4072706/the-connection-to-adb-is-down-and-a-severe-error-has-occured

+ Recent posts