Virtual Router를 사용하려 하다가 에러 메시지가 떴다.


그룹 또는 리소스가 요청된 작업을 실행할 올바른 상태에 있지 않습니다.


영어로: the group or resource is not in the correct state to perform the requested operation


대충 검색해서 나온 걸 따라해봐도 있지도 않은 Microsoft Hosted Network를 만지라거나...;;

모두 실패하여 영어로 검색하니 한방에 답이 나왔다.


"내컴퓨터-장치관리자-네트워크 어댑터 " 에서 내 노트북이 사용하는 무선랜을 선택-오른쪽 버튼- 속성 - 장치사용 클릭하면 OK


여기서 노트북이 쓰는 무선랜은 대충 때려맞추면 된다. Wireless 써있거나( 내 경우에는 Intel Centrino Wireless-N 이었다)

잘 모르겠으면 사용중지 되어있는 어댑터 한번씩 켜보면 될듯하다.





그런데.. 나는 다른 이유로 AP만들기 실패했는데, 아래 블로그를 보고 해결했다.


노트북으로 WIFI AP 만드는 과정

http://nitw.tistory.com/85





출처: https://www.youtube.com/watch?v=kr5nKTqa1vk






장장 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 안으로 넣어버렸습니다.



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







개인적으로 이해한 내용을 정리함.


자바는 포인터 개념이 없다.

비유하면 자바의 변수는 통이고 통안의 내용물을 메소드로 전달해주는 것.


# int, char 같은 primitive 들은 통(변수)안의 내용물이 값이므로 call by value 효과가 난다.


# 객체 변수는 안의 내용물이 주소이기 때문에 call by reference 효과가 난다.


# String은 call by value 효과가 난다.


String 자체는 객체지만 자바에서 특별 취급을 받아 그렇단다. 끝.


심심하여 그림첨부









선 해결책 후 설명 : project.properties 파일의 라이브러리 참조 경로를 상대경로로 바꾼다.





Github에서든 어디서든 남의 라이브러리를 가져와서 써볼라고

import를 한 후, 내project- 오른클릭- properties-android-library 탭- Add 하여

그 라이브러리를 내 프로젝트에 등록을 종종 할 일이 생긴다.

이때 거의 항상 처음에는 녹색 체크표시가 뜨며 기분좋게 된 듯 하다가

다시 properties 들어가보면 빨간색 엑스표시 (x) 가 뜨며 library 참조를 실패했음을 기분나쁘게 보여준다.

처음에 이걸 겪고 삽질을 하다보면. 이건 뭐.. 답이없다.

버그는 에러메시지라도 주지 빨간 엑스표시 보고 뭐어쩌라고..



에러




내프로젝트 - project.properties 파일을 보면 

# Project target.

target=android-21

android.library.reference.1=..\\appcompat_v7

android.library.reference.2=C:/Users/[사용자명]/Desktop/[남의 라이브러리 폴더]


요딴게 써있다.

잘 돌아가는 라이브러리 작성자가 만든 예제 프로젝트의 project.properties 을 봤다.
android.library.reference.1= ..\\ [폴더] 
이거 비슷하게 있다.

그렇다.


안되는 놈은 절대경로였고, 되는 놈은 상대경로였다.


라이브러리 폴더를 내 프로젝트폴더 안의 androidMenifesto 파일이 있는 곳에 두었다. 

( 한 수준 위 폴더에 놓으면 import할때 이미 있는 이름이라며 실패하기에..)


그러고 빨간엑스 라이브러리 지우고, 다시 라이브러리 세팅하면 성공. 녹색 체크가 당당하여라..

(원래 자동으로 되지만 혹시 안된다면 메뉴-project-clean)



두둥....두번째 에러 사냥

다 하고나니 Console에 아래와 같은 에러가 또 뜬다. 


[2014-12-25 01:48:43 - Test1] Found 3 versions of android-support-v4.jar in the dependency list,

[2014-12-25 01:48:43 - Test1] but not all the versions are identical (check is based on SHA-1 only at this time).

[2014-12-25 01:48:43 - Test1] All versions of the libraries must be the same at this time.

[2014-12-25 01:48:43 - Test1] Versions found are:

[2014-12-25 01:48:43 - Test1] Path: D:\develop\Android\Test1\Test1\libs\android-support-v4.jar

[2014-12-25 01:48:43 - Test1] Length: 995386

[2014-12-25 01:48:43 - Test1] SHA-1: a13f8fe2c278737e2f0b6fcf00f6b2ae4034aacf

[2014-12-25 01:48:43 - Test1] Path: D:\develop\Android\Test1\Test1\WScratchViewLibrary\libs\android-support-v4.jar

[2014-12-25 01:48:43 - Test1] Length: 385685

[2014-12-25 01:48:43 - Test1] SHA-1: 48c94ae70fa65718b382098237806a5909bb096e

[2014-12-25 01:48:43 - Test1] Path: D:\develop\Android\Test1\appcompat_v7\libs\android-support-v4.jar

[2014-12-25 01:48:43 - Test1] Length: 995386

[2014-12-25 01:48:43 - Test1] SHA-1: a13f8fe2c278737e2f0b6fcf00f6b2ae4034aacf

[2014-12-25 01:48:43 - Test1] Jar mismatch! Fix your dependencies



======

당황하지 말고 영어를 해석해보자.
android-support-v4.jar 파일이 세개가 발견됐는데 SHA-1으로 파일이 동등한지 검사해보니
다른놈이 하나 껴있다는 내용이다.
이거 dependancy 설정 만지는 다른 해결책이 있는 것 같은데 잘 모르겠어서,
막가파 내 방식대로 해결했다.

1. 딴사람의 라이브러리 폴더-libs의 android-support-v4.jar 파일을 지운다.
2. 내 프로젝트 폴더-libs의 android-support-v4.jar 파일을 복사하여 딴사람의 라이브러리 폴더-libs에 붙여넣기
3. project-clean

해결되었다. 이 조치로 인해 아직까지 큰 문제는 없었으나, 향후 발생할 문제에 대해서는 책임지지 않기로 한다. (무책임)

p.s. 포스팅으로 보기엔 따박따박 해결책을 바로 찾은걸로 보이나 실제로는 수시간의 개삽질을 했음을 알립니다.



선 해결책 : 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