M
MegaChroniX
Neues Mitglied
- 1
Hallo
ich habe eine Frage zu folgendem Codeausschnitt:
Ich Entwickel unter der SDK Version 10 (2.3.3) und dort bekomme ich auch gültige InputStreams zurückgeliefert.
Sobald ich jedoch ein Android4 Gerät benutze um die App zu testen steigt sie bei
mit folgender Exception aus:
04-10 19:59:53.782: W/System.err(611): android.os.NetworkOnMainThreadException
04-10 19:59:53.782: W/System.err(611): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.getAllByName(InetAddress.java:220)
04-10 19:59:53.792: W/System.err(611): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
04-10 19:59:53.802: W/System.err(611): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-10 19:59:53.802: W/System.err(611): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-10 19:59:53.822: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.xml.XMLManager.getInputStreamFromUrl(XMLManager.java:84)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.xml.XMLManager.validateLogin(XMLManager.java:33)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.LoginActivity.onClick(LoginActivity.java:48)
04-10 19:59:53.822: W/System.err(611): at android.view.View.performClick(View.java:3511)
04-10 19:59:53.833: W/System.err(611): at android.view.View$PerformClick.run(View.java:14105)
04-10 19:59:53.843: W/System.err(611): at android.os.Handler.handleCallback(Handler.java:605)
04-10 19:59:53.843: W/System.err(611): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 19:59:53.843: W/System.err(611): at android.os.Looper.loop(Looper.java:137)
04-10 19:59:53.843: W/System.err(611): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-10 19:59:53.843: W/System.err(611): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 19:59:53.852: W/System.err(611): at java.lang.reflect.Method.invoke(Method.java:511)
04-10 19:59:53.852: W/System.err(611): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-10 19:59:53.852: W/System.err(611): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-10 19:59:53.862: W/System.err(611): at dalvik.system.NativeStart.main(Native Method)
In der AndroidManifest.xml habe android.permission.INTERNET, daran liegt es nicht.
Achja:
Auf beim umstellen der SDK Version auf 14 oder 15 steigt er dort aus.
Edit, hat sich erledigt...
Ab Honeycomb dürfen keine Http Anfragen aus dem MainTread heraus passieren.
Also einfach nen Tread drum legen und warten bis es fertig ist
ich habe eine Frage zu folgendem Codeausschnitt:
Code:
private InputStream getInputStreamFromUrl(String url) throws Exception
{
InputStream content = null;
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
content = response.getEntity().getContent();
return content;
}
Sobald ich jedoch ein Android4 Gerät benutze um die App zu testen steigt sie bei
Code:
HttpResponse response = httpclient.execute(new HttpGet(url));
04-10 19:59:53.782: W/System.err(611): android.os.NetworkOnMainThreadException
04-10 19:59:53.782: W/System.err(611): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
04-10 19:59:53.792: W/System.err(611): at java.net.InetAddress.getAllByName(InetAddress.java:220)
04-10 19:59:53.792: W/System.err(611): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
04-10 19:59:53.802: W/System.err(611): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-10 19:59:53.802: W/System.err(611): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-10 19:59:53.812: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-10 19:59:53.822: W/System.err(611): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.xml.XMLManager.getInputStreamFromUrl(XMLManager.java:84)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.xml.XMLManager.validateLogin(XMLManager.java:33)
04-10 19:59:53.822: W/System.err(611): at de.facilityManager.LoginActivity.onClick(LoginActivity.java:48)
04-10 19:59:53.822: W/System.err(611): at android.view.View.performClick(View.java:3511)
04-10 19:59:53.833: W/System.err(611): at android.view.View$PerformClick.run(View.java:14105)
04-10 19:59:53.843: W/System.err(611): at android.os.Handler.handleCallback(Handler.java:605)
04-10 19:59:53.843: W/System.err(611): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 19:59:53.843: W/System.err(611): at android.os.Looper.loop(Looper.java:137)
04-10 19:59:53.843: W/System.err(611): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-10 19:59:53.843: W/System.err(611): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 19:59:53.852: W/System.err(611): at java.lang.reflect.Method.invoke(Method.java:511)
04-10 19:59:53.852: W/System.err(611): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-10 19:59:53.852: W/System.err(611): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-10 19:59:53.862: W/System.err(611): at dalvik.system.NativeStart.main(Native Method)
In der AndroidManifest.xml habe android.permission.INTERNET, daran liegt es nicht.
Achja:
Auf beim umstellen der SDK Version auf 14 oder 15 steigt er dort aus.
Edit, hat sich erledigt...
Ab Honeycomb dürfen keine Http Anfragen aus dem MainTread heraus passieren.
Also einfach nen Tread drum legen und warten bis es fertig ist
Zuletzt bearbeitet: