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
'developer tip' 카테고리의 다른 글
Xcode를 사용하면 iOS 장치에서만 실행할 수 있습니다 (시뮬레이터 없음). (0) | 2020.11.06 |
---|---|
double 값에 소수점이 없는지 확인하는 방법 (0) | 2020.11.06 |
Ruby 설치 후 MAC OS X에서 잘못된 활성 개발자 경로 (0) | 2020.11.06 |
Angular CLI를 제거하는 방법은 무엇입니까? (0) | 2020.11.06 |
NSDictionary 개체의 NSArray를 정렬하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.06 |