2013-06-25 4 views
0

Я получаю NoClassDefFoundError, когда класс, который не может быть найден, явно находится в проекте.NoClassDefFoundError, когда класс явно находится в проекте

ошибка на самом деле происходит с AsyncTask:

public class PrefAuth extends AsyncTask<SharedPreferences,Object, Boolean> { 

    @Override 
    protected Boolean doInBackground(SharedPreferences... params) { 
     return TwitterUtils.isAuthenticated(params[0]); 
    } 

    @Override 
    protected void onPostExecute(Boolean isAuthenticated) { 
     if (isAuthenticated) { 
      GlobalAppContext.setTwitterFlag(true); 
      Log.i("here", "isAuthenticated is true"); 
      Intent i = new Intent(getApplicationContext(), MainActivity.class); 
      startActivity(i); 
     } 
     else { 
      Log.i("here", "isAuthenticated is false"); 
      Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
      startActivity(i); 
     } 
    } 
} 

точки ошибка в строке return TwitterUtils.isAuthenticated(params[0]);. TwitterUtils - это класс, который ссылается на Twitter4j. Я пробовал заказ & экспорт на путь класса, перемещая Twitter4j вверх. Я пробовал очистить и перестроить. Кто-нибудь знает, почему класс не может быть найден? Logcat ниже:

06-25 00:40:42.021: E/AndroidRuntime(5078): FATAL EXCEPTION: AsyncTask #1 
06-25 00:40:42.021: E/AndroidRuntime(5078): java.lang.RuntimeException: An error occured while executing doInBackground() 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at android.os.AsyncTask$3.done(AsyncTask.java:200) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.lang.Thread.run(Thread.java:1027) 
06-25 00:40:42.021: E/AndroidRuntime(5078): Caused by: java.lang.NoClassDefFoundError: twitter4j.auth.AccessToken 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at com.tforan.blobtag4.twitter.TwitterUtils.isAuthenticated(TwitterUtils.java:17) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at com.tforan.blobtag4.SplashActivity$PrefAuth.doInBackground(SplashActivity.java:41) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at com.tforan.blobtag4.SplashActivity$PrefAuth.doInBackground(SplashActivity.java:1) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
06-25 00:40:42.021: E/AndroidRuntime(5078):  ... 4 more 
+0

Вы добавили проект библиотеки или банку? – blganesh101

ответ

0

правой кнопкой мыши по проекту> Перейти к Properties> Java Build Path> Порядок и экспорт> Проверить "Android Частные библиотеки"

затем чистой и построить проект, а затем запустить проект.

Также проверьте другие файлы jar, если вы экспортировали их в свой проект.

Надеюсь, это поможет вам.