이클립스에서 SDK Manager를 통해 패키지들을 인스톨(혹은 업그레이드)하는 중에 다음과 같은 에러가 발생하였다.






(당시 에러 상황을 캡처하지 않았던 탓에 인터넷 상에서 비슷한 에러를 보이는 다른사람의 스크린샷을 이용하였다)


원인 분석1 :


이 에러에 대한 경고 내용을 읽어보면 윈도우즈 탐색기 혹은 백신 소프트웨어가 rename하려는 directory를 쥐고 있


는 탓에 폴더를 옮기는데 실패했다고 한다. 


그래서 백신을 끄고 yes를 눌러보았으나 여전히 install에 failed 했다는 에러가 발생하였다.


알고보니 나는 이클립스상에서 SDK Manager를 실행했는데, 이클립스 자체가 해당 경로를 쥐고 있던 탓에 이런 에러


가 발생한 것이었다. 즉, 이클립스를 닫고 yes 버튼을 누르면 문제가 해결된다.



근데, 나의 경우는 상황이 달랐다.


이클립스를 닫으면 문제가 해결된다는 사실을 알기 전 no를 클릭했던 것이다.


(당연히 no를 클릭하면 나머지 패키지들에 대한 인스톨을 마치고 다시 해당 에러에 대한 문구라던지, 설치가 안된 


패키지만 다시 설치 할 수 있는 방법 등이 제시될 거라 생각)


그런데 나머지 패키지들을 설치하고 나서, SDK Manager를 아무리 살펴봐도 no를 클릭해 넘겼던 에러에 대해 처리할


수 있는 방법을 찾지 못했다.



그래서, 이클립스에서 알아서 에러처리를 해줬을거라고 생각을 하고 이클립스를 껐다 다시 키니..


이번에는 이클립스 상의 프로젝트들에서 unable to resolve target 'android-20' 이라는 에러가 무수히 발생하는 것이


었다. 나의 경우 android-20을 인스톨 하는 과정에서 no를 클릭했기 때문에 분명히 방금 전 SDK Manager를 통해


패키지를 인스톨하는 과정에서 발생했던 문제 때문일거라 생각했다.



원인 분석2 :


android-20을 resolve 할 수 없다고 나왔기 때문에 android sdk를 설치한 디렉토리의 platforms 디렉토리로 가보았다.






여기서 android-20폴더에 들어가자, 텅 빈 data 폴더만 들어 있었다. (사진생략)


그렇다면, 아무런 에러가 발생하지 않았던 android-16과 android-19의 폴더 내에는 어떤 데이터들이 들어가있을까


싶어서 android-19 폴더로 들어가보았다.





보시다시피 android-19폴더 안에는 이런 데이터들이 들어가는데, android-20폴더 내에는 텅 빈 data폴더만 들어있었


으므로 처음 예상대로 SDK Manager를 통해 android-20에 대한 install 수행 시 발생한 문제 때문인 것을 알아냈다.


그리고 첫 번째 사진을 보면, 원래 디렉토리를 android-sdk폴더내의 temp폴더 안의 old 파일로 rename을 하려던


중 에러가 발생했으므로, 혹시 temp 폴더 안에 가보면 무언가 있지 않을까 싶어서 temp 폴더로 가보았고,





설치에 실패한건지, 성공한건지는 알 수 없지만 문제가 발생했던 android-20에 대한 zip파일이 있었다.


그리고 zip파일의 내용을 확인해보니





이렇게, android-19 폴더 내에 있었던 데이터들이 똑같이 존재했고, 이것들을 복사해서 android-20폴더 안에 가져다


놓으니 문제가 해결되었다.








Posted by huammmm1
,