Проблема с AsyncTask: где я ошибся? - PullRequest
0 голосов
/ 10 мая 2011

Я пытаюсь использовать 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

1 Ответ

0 голосов
/ 10 мая 2011

Хорошо, хорошо, logcat был полезен.Это часто случается со мной, когда я просто добавляю библиотеки в путь сборки, настраивая путь сборки, выбирая пользовательские библиотеки.По какой-то причине мне нужно всегда создавать папку с именем libs в моем проекте, затем добавлять файлы jar и нажимать, чтобы добавить путь сборки.Сейчас работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...