J'ai développé une application.now J'essaie d'intégrer le Twitter de ma candidature. Mon problème est lorsque je connecte l'application IT indique S'il vous plaît n'importe quel aide moi merci ... p> "android.os.networkonmaintHreadException" code> "at android.os.strictMode $ androidblockguardpolicy.onnetwork (strictmode.java:1117) " code>. E/AndroidRuntime( 5946): FATAL EXCEPTION: main
E/AndroidRuntime( 5946): android.os.NetworkOnMainThreadException
E/AndroidRuntime( 5946): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
E/AndroidRuntime( 5946): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
E/AndroidRuntime( 5946): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
E/AndroidRuntime( 5946): at java.net.InetAddress.getAllByName(InetAddress.java:214)
E/AndroidRuntime( 5946): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
E/AndroidRuntime( 5946): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
E/AndroidRuntime( 5946): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:341)
E/AndroidRuntime( 5946): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
E/AndroidRuntime( 5946): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
E/AndroidRuntime( 5946): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
E/AndroidRuntime( 5946): at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
E/AndroidRuntime( 5946): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
E/AndroidRuntime( 5946): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
E/AndroidRuntime( 5946): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
E/AndroidRuntime( 5946): at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188)
E/AndroidRuntime( 5946): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:158)
E/AndroidRuntime( 5946): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
E/AndroidRuntime( 5946): at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:102)
E/AndroidRuntime( 5946): at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:121)
E/AndroidRuntime( 5946): at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:104)
E/AndroidRuntime( 5946): at twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:276)
E/AndroidRuntime( 5946): at com.androidhive.twitterconnect.MainActivity.loginToTwitter(MainActivity.java:236)
E/AndroidRuntime( 5946): at com.androidhive.twitterconnect.MainActivity.access$1(MainActivity.java:223)
E/AndroidRuntime( 5946): at com.androidhive.twitterconnect.MainActivity$1.onClick(MainActivity.java:123)
E/AndroidRuntime( 5946): at android.view.View.performClick(View.java:4084)
E/AndroidRuntime( 5946): at android.view.View$PerformClick.run(View.java:16966)
E/AndroidRuntime( 5946): at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime( 5946): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 5946): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 5946): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime( 5946): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5946): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 5946): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime( 5946): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime( 5946): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 282): Force finishing activity com.androidhive.twitterconnect/.MainActivity
D/mobiled--->listener( 76): [Client side (recv_cnt: 3671)]: Data is coming, go to check fd_set.
D/mobiled--->listener( 76): [Client side (recv_cnt: 3671)]: Find a socket with data, unlock and receive.
D/mobiled--->netlink_listener( 76): Going to decode uevent.
4 Réponses :
Vous devez vérifier cet Oncreate () em> méthode: et ajoutez la permission au manifeste. p> android.os.networkonmaintHreadException code> signifie que vous exécutez votre fonctionnement de réseau sur le thread principal qu'il sera bloqué. Donc, au-dessus de la solution consiste à restreindre l'erreur réseau. Mais à surmonter avec cette erreur, vous devez utiliser asynctack em> ou en créant un fil d'enfant et mettez à jour votre interface utilisateur dans la méthode runonuthread em> qui mettra à jour l'interface utilisateur dans cette méthode. P> p>
ne fonctionne pas pour des versions très inférieures \
J'ai eu du mal avec ça pendant des heures. Merci! (MINSDK = 11)
OMG ne fais pas ça! Il y a une raison pour cela et c'est que l'interface utilisateur ne bloquera pas sur un appel réseau
C'est un gros no-non. Utilisez l'arrêt d'asyncaptage ou créez un nouveau fil et faites votre appel là-bas.
Cette exception est lancée lorsqu'une application tente d'effectuer une opération de réseau sur son fil principal. Exécutez votre code dans AsyncCTASK:
<uses-permission android:name="android.permission.INTERNET"/>
Dans son cas, cela ne fonctionne pas, car une référence statique est utilisée: Twitter = usine.getinstance ();
Vous faites votre connexion sur le fil principal.
Tout le code dans la méthode
Ajoutez simplement le code suivant dans l'activité ONCREATE OFF:
if (android.os.Build.VERSION.SDK_INT > 8) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
Vérifiez ma réponse ci-dessous, cela fonctionnera, 100%
Avez-vous essayé Google It? Il y a des tonnes de tutoriels. développeur.android.com/reeference/android/os/asynccTask.htmlLle_/a >