2013-06-19 3 views
0

Я получаю следующую информацию LogCat, когда я нажимаю кнопку на моем приложении:Получение java.lang.NoClassDefFoundError в андроиде с Затмением

06-19 11:24:45.308: E/AndroidRuntime(11498): FATAL EXCEPTION: main 
06-19 11:24:45.308: E/AndroidRuntime(11498): java.lang.IllegalStateException: Could not execute method of the activity 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.view.View$1.onClick(View.java:3674) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.view.View.performClick(View.java:4198) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.view.View$PerformClick.run(View.java:17164) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.os.Handler.handleCallback(Handler.java:615) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.os.Looper.loop(Looper.java:137) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.app.ActivityThread.main(ActivityThread.java:4918) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at java.lang.reflect.Method.invokeNative(Native Method) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at java.lang.reflect.Method.invoke(Method.java:511) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at dalvik.system.NativeStart.main(Native Method) 
06-19 11:24:45.308: E/AndroidRuntime(11498): Caused by: java.lang.reflect.InvocationTargetException 
06-19 11:24:45.308: E/AndroidRuntime(11498): at java.lang.reflect.Method.invokeNative(Native Method) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at java.lang.reflect.Method.invoke(Method.java:511) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at android.view.View$1.onClick(View.java:3669) 
06-19 11:24:45.308: E/AndroidRuntime(11498): ... 11 more 
06-19 11:24:45.308: E/AndroidRuntime(11498): Caused by: java.lang.NoClassDefFoundError: com.facebook.android.MainActivity$UpdateStatusListener 
06-19 11:24:45.308: E/AndroidRuntime(11498): at com.facebook.android.MainActivity.triggerDialog(MainActivity.java:55) 
06-19 11:24:45.308: E/AndroidRuntime(11498): at com.facebook.android.MainActivity.firstClicked(MainActivity.java:36) 
06-19 11:24:45.308: E/AndroidRuntime(11498): ... 14 more 

Вот как я мои классы созданы, только с соответствующим методы и информация отображается здесь:

public class MainActivity extends Activity { 

    //triggered when the button is clicked 
    public void firstClicked(View view) 
    { 
     triggerDialog(); 
    } 

    public void triggerDialog() 
    { 
       //assume for the sake of this post that this string array has 4 strings 
      String[] offer_details = postOffer.getDetails(); 
      Bundle params = new Bundle(); 
       params.putString("caption", getString(R.string.app_name)); //Hackbook for Android 

       Utility.mFacebook.dialog(MainActivity.this, "feed", params, new UpdateStatusListener()); 
    } 

    public class UpdateStatusListener extends BaseDialogListener { 

     @Override 
     public void onComplete(Bundle values) { 
      Log.i("wbbug","Status post complete."); 
      final String postId = values.getString("post_id"); 
      if (postId != null) { 
       Toast toast = Toast.makeText(getApplicationContext(), "Facebook status update successful", Toast.LENGTH_LONG); 
       toast.show(); 
      } else { 
       Toast toast = Toast.makeText(getApplicationContext(), "No wall post made", 
         Toast.LENGTH_LONG); 
       toast.show(); 
      } 
     } 

    } 


} 

Это все непосредственно после пример из Facebook SDK и пример работы с этим базовым кодом. Почему он не может найти класс UpdateStatusListener()? Благодаря!

ответ

0

Это исключение обычно означает, что ваш vm не может найти необходимые библиотеки. Кажется странным, что это происходит во время выполнения. Попробуйте проверить, все ли у вас библиотеки.

1

Я пытался начать использовать SDK для Android для Android с Eclipse и не мог заставить его работать. После того, как вы пытаетесь по-разному, это решение, которое постоянно работает:

1) Импорт (Файл-> Импорт-> Существующий код для Android в рабочую область) только в папке только SDK для Facebook (PATH \ facebook-android-sdk-3.0.1). (Не проверяйте копию на рабочем месте)

2) Импорт (т. Е. PATH \ facebook-android-sdk-3.0.1 \ samples \ ProfilePictureSample) только одного из примеров проектов (на данный момент). Я буду использовать ProfilePictureSample в качестве примера

Как вы можете видеть, Eclipse выдает ошибки, говоря, что он не знает, что FragmentActivity в ProfilePictureSampleActivity. FragmentActivity является частью библиотеки поддержки Android. Если вы посмотрите на проводник пакетов, нет папки libs или каких-либо ссылок на поддержку android lirbary; Он находится в библиотеке FacebookSDK. Нам нужно сказать Eclipse, чтобы экспортировать его.

4) Щелкните правой кнопкой мыши на библиотеке FacebookSDK и выберите свойства. В меню слева выберите «Путь сборки Java». Затем на вкладке «Заказ и экспорт» установите флажок «Частные библиотеки Android» (вместо этого вы можете щелкнуть на android-supportv4-jar).

5) Project-> Clean

Теперь по какой-то причине (возможно, кто-то может остановиться на этом), пример проект также должен экспортировать андроид библиотеку поддержки.

6) Щелкните правой кнопкой мыши на примере проекта (например, ProfilePictureSample), затем щелкните по свойствам. В меню слева выберите «Путь сборки Java». Затем на вкладке «Заказ и экспорт» выберите «Частные библиотеки Android».

7) Project-> Clean

Надеется, что это помогает !!

Смежные вопросы