0

This is the entire stacktace from Logcat. I'm basically using the twitter4j library. I've added my tokens and secrets from the twitter dev site. Can you Help me Debug this? The code is mostly based on http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/

Thanks!

12-13 16:38:22.225: E/AndroidRuntime(12659): FATAL EXCEPTION: main
12-13 16:38:22.225: E/AndroidRuntime(12659): Process: code.laerstudios.gappa, PID: 12659
12-13 16:38:22.225: E/AndroidRuntime(12659): android.os.NetworkOnMainThreadException
12-13 16:38:22.225: E/AndroidRuntime(12659):at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at java.net.InetAddress.getAllByName(InetAddress.java:214)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:135)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:122)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:104)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:298)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at code.laerstudios.gappa.MainActivity.loginToTwitter(MainActivity.java:225)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at code.laerstudios.gappa.MainActivity.access$0(MainActivity.java:212)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at code.laerstudios.gappa.MainActivity$1.onClick(MainActivity.java:153)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.view.View.performClick(View.java:4438)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.view.View$PerformClick.run(View.java:18422)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.os.Handler.handleCallback(Handler.java:733)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.os.Handler.dispatchMessage(Handler.java:95)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.os.Looper.loop(Looper.java:136)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at android.app.ActivityThread.main(ActivityThread.java:5019)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at java.lang.reflect.Method.invoke(Native Method)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
12-13 16:38:22.225: E/AndroidRuntime(12659):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
12-13 16:38:25.449: I/Process(12659): Sending signal. PID: 12659 SIG: 9
Boggartfly
  • 33
  • 1
  • 7

3 Answers3

1

Teach a man to fish;

If you Google the exception you got, you'll notice that you can't run network operation on the main thread.

https://www.google.co.uk/search?q=NetworkOnMainThreadException&client=ubuntu&channel=cs&oq=NetworkOnMainThreadException&aqs=chrome.0.69i57j69i59&sourceid=chrome&ie=UTF-8

OrhanC1
  • 1,415
  • 2
  • 14
  • 28
  • So should I run it on Async? Its confusing because I didn't need to run network tasks on my previous apps... I did see this http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception – Boggartfly Dec 13 '13 at 11:31
  • Yes. In fact, I recommend using a HTTP library like loopj: loopj.com/android-async-http/ – OrhanC1 Dec 13 '13 at 11:36
0

The exception at the top is very clear: android.os.NetworkOnMainThreadException

Android does not let you do network operations on your main thread. Try creating an AsyncTask and do you operations there asynchronously.

Mert Akcakaya
  • 3,109
  • 2
  • 31
  • 42
0

Its Simple You have some network related Code in your UI thread, So put that within a thread like

Thread thread = new Thread()
{
@Override
public void run() {

}
};

thread.start();

Any code related to Http request or socket or any such things that are network related which will block the UI execution will cause this exception

Viswanath Lekshmanan
  • 9,945
  • 1
  • 40
  • 64