2011-05-10 5 views
0

AsyncTask를 사용하여 웹 서비스에 연결하려고합니다. 앱을 실행하면 예기치 않게 닫힙니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 여기에 내 코드입니다 :AsyncTask 문제 : 어디로 잘못 갔습니까?

public class Main extends Activity { 
    private static final String CONSUMER_KEY = "dsfjfsdksfdjl322342"; 
    private static final String CONSUMER_SECRET = "fwefer234242424"; 
    private TextView mText; 
    ProgressDialog progress = null; 
    TextView mTextView = null; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mTextView = (TextView)findViewById(R.id.textView); 
     //new ConnectThinkNearTask().execute(); 
     new ConnectToThinkSomeAPITask().execute("http://api-someapi.api.com/1.0/offers/40.7144,-74.0060.json"); 
    } 

    private class ConnectToSomeAPITask extends AsyncTask<String, Void, String> { 
     @Override 
     protected String doInBackground(String...urls) { 
      String response = ""; 
      for(String url: urls) { 
       OAuthConsumer consumer = new DefaultOAuthConsumer(CONSUMER_KEY, 
         CONSUMER_SECRET); 
       consumer.setTokenWithSecret("", ""); 

       try { 
        URL url1 = new URL(url); 
        HttpURLConnection request = (HttpURLConnection) url1.openConnection(); 


        // sign the request 
        consumer.sign(request); 

        // send the request 
        request.connect(); 

        if(request.getResponseCode()==200) { 
         response = "Sorry, failed to connect to x"; 
         //     mText.setText("Sorry, failed to connect to x"); 
         //    } else if(request.getResponseCode()==401) { 
         response = "Congrats, you're connected to x!"; 
         //mText.setText("Congrats, you're connected to x!"); 
        } else 
         response = "Whatever you're asking for, it ain't a valid HTTP request..."; 
        //     mText.setText("Whatever you're asking for, it ain't a valid HTTP request..."); 
       } catch (Exception e) { 
        e.printStackTrace(); 

       } 
      } return response; 

     } 

     @Override 
     protected void onPostExecute(String result) { 
      mTextView.setText(result); 
     } 
    }  

} 

그리고 여기 로그입니다 :

05-09 21:34:00.219: ERROR/AndroidRuntime(29878): FATAL EXCEPTION: AsyncTask #1 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878): java.lang.RuntimeException: An error occured while executing doInBackground() 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at android.os.AsyncTask$3.done(AsyncTask.java:200) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.lang.Thread.run(Thread.java:1096) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878): Caused by: java.lang.NoClassDefFoundError: oauth.signpost.basic.DefaultOAuthConsumer 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at org.androidstack.thinknear.Main$ConnectToThinkNearTask.doInBackground(Main.java:45) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at org.androidstack.thinknear.Main$ConnectToThinkNearTask.doInBackground(Main.java:1) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
05-09 21:34:00.219: ERROR/AndroidRuntime(29878):  ... 4 more 
+0

logcat 출력이 도움이 될 것입니다. – debracey

+0

NoClassDefFoundError는 클래스 경로가 제대로 설정되지 않았 음을 나타냅니다. 안드로이드 프로젝트에 푯말 병을 어디에 두셨습니까? –

답변

0

좋아, 잘 로그 캣은 도움이되었다. 이는 사용자 라이브러리를 선택하여 빌드 경로를 구성하여 라이브러리를 빌드 경로에 추가 할 때 많이 발생합니다. 어떤 이유로 프로젝트에서 libs라는 폴더를 만든 다음 항아리를 추가하고 클릭하여 빌드 경로에 추가하십시오. 지금 일하고있어!

관련 문제