1
서버에서 데이터를 가져 와서 표시 할 앱을 만들고 있습니다. 사용자에게 로그인을 요청하면 호스트 이름 (예 : stackoverflow.com)을 입력하면 프로그램이 중단되고 IP를 입력하면 제대로 작동하며 (예 : 198.252) 사이트에서 데이터를 가져올 수 있습니다. .206.16 (스택 오버플로의 IP 주소). 그래서이 문제가 아니다Android에서 호스트 이름을 확인할 수 없습니다.
내 AndroidManifest.xml에이
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
포함되어 있습니까 :
이private String buildURL(Param... params)
{
String server = SessionInfo.getInstance().getServer();
try{
server = InetAddress.getByName(server).getHostAddress();
} catch (UnknownHostException e1){
Log.d("UNKNOWN HOST EXCEPTION", e1.toString());
e1.printStackTrace();
}
String sessionId = SessionInfo.getInstance().getSessionId();
String url = "http://" + server + "/" + SITE_ADDRESS + "/api/login";
return url;
}
편집 :
는 여기 나누기 응용 프로그램에서 일부 코드입니다.
로그 캣 :
07-23 17:48:37.799: W/System.err(1447): java.net.UnknownHostException: Unable to resolve host "SERVER": No address associated with hostname
07-23 17:48:37.799: W/System.err(1447): at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
07-23 17:48:37.829: W/System.err(1447): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
07-23 17:48:37.839: W/System.err(1447): at java.net.InetAddress.getAllByName(InetAddress.java:214)
07-23 17:48:37.839: W/System.err(1447): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
07-23 17:48:37.849: W/System.err(1447): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-23 17:48:37.878: W/System.err(1447): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-23 17:48:37.878: W/System.err(1447): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-23 17:48:37.899: W/System.err(1447): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-23 17:48:37.899: W/System.err(1447): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-23 17:48:37.919: W/System.err(1447): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-23 17:48:37.919: W/System.err(1447): at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:252)
07-23 17:48:37.939: W/System.err(1447): at com.app.android.rest.APIBase.post(APIBase.java:185)
07-23 17:48:37.958: W/System.err(1447): at com.app.android.rest.LoginAPI.doInBackground(LoginAPI.java:44)
07-23 17:48:37.978: W/System.err(1447): at com.app.android.rest.LoginAPI.doInBackground(LoginAPI.java:1)
07-23 17:48:37.978: W/System.err(1447): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-23 17:48:37.998: W/System.err(1447): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
07-23 17:48:38.008: W/System.err(1447): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-23 17:48:38.028: W/System.err(1447): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-23 17:48:38.028: W/System.err(1447): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-23 17:48:38.048: W/System.err(1447): at java.lang.Thread.run(Thread.java:856)
07-23 17:48:38.048: W/System.err(1447): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
07-23 17:48:38.088: W/System.err(1447): at libcore.io.Posix.getaddrinfo(Native Method)
07-23 17:48:38.088: W/System.err(1447): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:59)
07-23 17:48:38.099: W/System.err(1447): at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
07-23 17:48:38.099: W/System.err(1447): ... 19 more
07-23 17:48:38.128: D/AndroidRuntime(1447): Shutting down VM
07-23 17:48:38.128: W/dalvikvm(1447): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
그리고 내 매니페스트 :
글쎄, 내 경우에는, 알고 보니 사항 :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/app_thumbnail"
android:label="app Mobile"
android:theme="@style/Theme.Sherlock" >
<activity
android:screenOrientation="portrait"
android:name="com.app.android.LoginScreenActivity"
android:theme="@style/Theme.Sherlock.NoActionBar"
android:label="Mobile App" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:screenOrientation="portrait"
android:name="com.app.android.MonitorSettingsActivity"
android:label="" />
<activity
android:screenOrientation="portrait"
android:name="com.app.android.MainScreenActivity"
android:label="" >
<intent-filter>
<action android:name="com.app.android.MAINSCREENACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
에뮬레이터 또는 실제 장치를 사용하고 있습니까? – m0skit0
에뮬레이터를 사용하고 있습니다. 또한 에뮬레이터의 브라우저를 사용하여 웹 사이트에 액세스 할 수 있습니다. –
"충돌"을 정의 하시겠습니까? 그것은'UnknownHostException'을 던집니다? 해당 권한이 매니페스트 파일의 올바른 위치에 있는지 확인하십시오. –