developer tip

Android : UnknownHostException

optionbox 2020. 11. 6. 08:05
반응형

Android : UnknownHostException


Android SDK 2.2를 사용하여 에뮬레이터로 내 애플리케이션을 테스트하고 있습니다. HTTP Post를 보내고 싶습니다. 내가 할 때 UnknownHostException이 발생합니다. 나는 필요한 권한에 놓여있다
<uses-permission android:name="android.permission.INTERNET" />
manifest.xml에. 또한 에뮬레이터에서 브라우저를 열고 문제없이 URL로 이동할 수 있습니다.

내 코드는 다음과 같습니다.

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost( uri );
HttpResponse response = null;
try
{
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2 );
nameValuePairs.add( new BasicNameValuePair( "id", "edit-name" ) );
nameValuePairs
.add( new BasicNameValuePair( "stringdata", userName ) );
httppost.setEntity( new UrlEncodedFormEntity( nameValuePairs ) );

// Execute HTTP Post Request
response = httpclient.execute( httppost );
// Log.i( "HttpManager:", "======> response: "
// + response.getEntity().getContent() );

}
catch (ClientProtocolException e)
{
Log.e( "HttpManager", "ClientProtocolException thrown" + e );
}
catch (IOException e)
{
Log.e( "HttpManager", "IOException thrown" + e );
}

좋아, 난 꽤 절름발이 ... INTERNET 권한 태그는 응용 프로그램 태그가 아니라 매니페스트 태그의 자식입니다. 쉿!


다른 사람들의 고려를 위해 나는이 문제에 부딪 쳤고 Google이 나를 착륙시켰다. anisbet에서 언급했듯이 권한 태그를 두 번 확인한 결과 올바른 위치에있었습니다.

나는 결국 브라우저에 내장 된 안드로이드를 작동 시켰고, 내 웹 서버와 구글 닷컴 (컴퓨터 자체는 괜찮 았지만)에서 동일한 응답을 받았다. Android 에뮬레이터를 종료하고 다시 시작했습니다. 첫 번째 시도에서 일했습니다.

코드를 검토 한 후 에뮬레이터를 다시 시작하는 것이 좋습니다. 에뮬레이터에 대해 공정하게 말하면이 작업을 수행 한 직후에 많은 프로그램이 충돌하여 컴퓨터에서 다른 작업이 진행 중일 수 있습니다. 그래도 이것은 나에게 많은 시간을 낭비했기 때문에 아마도 이것은 내가 겪었던 두통을 누군가에게 구할 것입니다.

행운을 빌어 요!


인터넷에 연결되어 있는지 확인하십시오. 인터넷에 연결되지 않은 휴대폰으로 테스트하는 것을 잊었을 때 그랬습니다.


나를 위해 해결 된 것은 다음과 같이 닫는 매니페스트 태그 바로 앞에 권한을 두는 것입니다.

<uses-permission android:name="android.permission.INTERNET" />
</manifest>

에뮬레이터에서 앱을 실행할 때 가끔 발생합니다. 에뮬레이터를 다시 시작하면 문제가 해결됩니다. 그것은 나를 위해 일했습니다!


위의 방법이 모두 작동하지 않으면 한 걸음 물러서서 브라우저를 열어 기기 나 에뮬레이터가 실제로 인터넷에 연결할 수 있는지 확인하세요.


minSdkVersion이 4로 설정된 앱을 테스트 할 때 비슷한 문제가 발생했고 G1에서 실행하려고했습니다. 3으로 변경하면 문제가 해결되었습니다.


나는 같은 문제에 부딪쳤다. 내 Android Manifest 파일에 올바른 권한이 있고 URL도 정확합니다. 웹 브라우저에서 응답을 받고 있습니다. IDE, Emulator를 다시 시작했지만 문제가 해결되지 않았습니다. 그래서 AVD 관리자를 사용하여 AVD를 삭제 한 다음 에뮬레이터를 시작하고 작동하기 시작했습니다.


최종 확인은 도메인 이름이 유효한 도메인인지입니다. 도메인에 밑줄이있는 것은 유효하지 않으며 알 수없는 호스트 예외가 발생합니다.


다른 한 가지 : 인터넷 자체가 저에게 효과가 없다는 것이 밝혀졌습니다. 이 스위치를 사용하여 명령 줄에서 에뮬레이터를 시작하면 문제가 해결되었습니다.emulator -avd your_avd_name -dns-server 8.8.8.8


Wi-Fi에 연결할 때이 오류가 발생했습니다. WiFi를 끄 자마자 작동했습니다. UnknownHostException이 Android 버그로 인해 발생할 수 있습니다.

http://code.google.com/p/android/issues/detail?id=67324


에뮬레이터를 사용하지 않는 경우에도 확인하십시오.

오늘 같은 문제가 발생했습니다. 에뮬레이터를 사용하지 않고 테스트를 위해 모바일에서 USB 디버깅을 활성화했습니다.

모바일에서 데이터를 켜지 않았기 때문에을 켰습니다 UnknownHostException. 일단 켜면 문제가 해결되었습니다.


VPN을 열면 "알 수없는 호스트 예외"가 발생할 수 있습니다.


I ran into same problem when using emulator, because I changed wifi on my laptop so restarting the wifi of emulator solved my problem.

참고URL : https://stackoverflow.com/questions/3314137/android-unknownhostexception

반응형