2017. 10. 24. 15:30

비주얼 스튜디오 에뮬레이터를 설치하고 자마린을 빌드하여 에뮬레이터에 배포하는데 반응이 없는 현상이 있습니다.

전에도 이거랑 비슷한 증상을 이야기한 적이 있는데요.

(참고 : [Xamarin] 디버그 시작시 무한 로딩 현상 )

이 방법 말고도 일반적으로 해봐야 할 방법들도 정리했습니다.

(참고 : [Xamarin] 비주얼 스튜디오 에뮬래이터(Visual Studio Emulator)에서 자마린 배포가 안되는 현상 - 일반적인 해결 방법 )

 

같은 현상이 또 일어났습니다.

비주얼 스튜디오의 고질적인 문제일지도? ㅋㅋㅋㅋ

 

 

1. 증상

보통 아래 스크린 샷과 같이 에뮬레이터까지는 실행되는데 배포가 되지 않고 무한 로딩에 빠지는 현상입니다.

 

 

1>5" Marshmallow (6.0.0) XXHDPI Phone 배포 시작 중...
1>에뮬레이터 5" Marshmallow (6.0.0) XXHDPI Phone 시작 중...
1>Validating emulator arguments...
1>Determining if emulator is already running...
1>Preparing virtual machine...
1>Launching emulator...
1>Emulator launched successfully.

 

아무리 오래 기다려도 반응하지 않습니다.

 

배포를 중단하려면 에뮬레이터를 끄거나

빌드 > 취소를 눌러야 합니다.

 

 

 

취소야 되어라~

 

 

2. ADB가 접속되지 않는다.

이 증상이 일어나는 이유는 예전에도 그랬지만 결국 ADB에 제대로 연결되지 않아서 발생하는 현상입니다.

adb를 다시 연결하고 시도해 봅시다.

(참고 : stackoverflow - Visual Studio Emulator for Android - Project does not Deploy)

 

에뮬레이터의 오른쪽 방향 2개가 겹쳐있는 아이콘을 눌러 에뮬레이터의 '추가 도구'에 '네트워크(Network)'탭을 선택합니다.

여기서 네트워크 에드레스(Network addresses)를 확인합니다.

 

 

 

도구 > 안드로이드 > 명령 프롬프트를 선택하고

adb connect [네트워크 어드레스]

를 입력하여 adb를 에뮬레이터와 연결해 줍니다.

 

 

 

이렇게 하면 이제 에뮬레이터가 연결되고 정상적으로 배포가 되기 시작합니다.

 

 

3. 레지스트 수정

매번 이 짓을 하면 해결이 됩니다.

.....

.....

 

이것을 해결하기 위해 msdn에서는 레지스트를 수정하라고 합니다.

(참고 : MSDN - Troubleshooting the Visual Studio Emulator for Android )

 

만약 설치하였다면 설치 버전 sdk로 설치 하셨을 텐데 이럴 때는 레스트키가 자동으로 생성됩니다.

 

3-1. 레지스트 키가 없다.

그런데 안드로이드 sdk가 설치 버전에서 일반 버전으로 설치하면 인스톨이 아니기 때문에 레지스트가 생기지 않습니다.

 

이럴 때는 직접 레지스트 키를 추가시켜야 합니다.

윈도우10 기준으로 안드로이드 sdk의 레지스트 위치는 다음과 같습니다.

 

32비트 라면
HKEY_LOCAL_MACHINE\Software\Android SDK Tools
 
64비트 라면
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Android SDK Tools

 

 

 

여기에 '새로 만들기 > 문자열 값'을 추가하고 아래와 같이 세팅합니다.

"Path"를 추가하고 자신의 안드로이드 sdk 경로를 넣어 줍니다.

 

 

이제 재부팅을 하면 adb를 자동으로 연결하여 사용하게 됩니다.

 

 

마무리

레지스트 파일입니다.(64비트용)

AndroidSdkPath.zip

압축풀고 메모장으로 열어서 자신의 안드로이드 sdk위치에 맞게 수정해 주시고 재부팅 하시면 됩니다.

 

이런 번잡스러운 작업은 비주얼 스튜디오에서 안드로이드 SDK 설정할 때 자동으로 해주면 좋을 텐데 말이죠...

뭔가..........예전에 C++할 때 참조 설정 지옥에 빠지던 기분입니다 ㅎㅎㅎㅎ