2013-06-19 87 views
0

我得到以下信息logcat中,當我點擊我的應用程序的按鈕:獲取java.lang.NoClassDefFoundError在android系統與Eclipse

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

這個異常通常意味着你的虛擬機無法找到必要的庫。它看起來很奇怪,但它在運行時發生。 嘗試檢查您的圖書館是否都在那裏。

1

我正在嘗試着開始使用Facebook的SDK for Android與Eclipse和無法讓它的工作。 1)導入(文件 - >導入 - >現有的Android代碼到工作區)僅僅是Facebook SDK文件夾(PATH \ facebook-android-sdk-3.0.1) )。 (不要複製到工作場所)

2)導入(即PATH \ facebook-android-sdk-3.0.1 \ samples \ ProfilePictureSample)只是其中一個示例項目(現在)。我將使用ProfilePictureSample作爲示例

如您所見,Eclipse會拋出錯誤,指出它不知道ProfilePictureSampleActivity中的FragmentActivity。 FragmentActivity是android支持庫的一部分。如果你看看包瀏覽器,沒有libs文件夾或任何對android支持lirbary的引用;它在FacebookSDK庫上。我們需要告訴Eclipse來導出它。

4)右鍵點擊FacebookSDK庫,然後點擊屬性。在左側菜單中,轉到Java Build Path。然後在Order and Export選項卡下選擇Android Private Libraries(你也可以點擊android-supportv4-jar)。

5)項目 - >清潔

現在出於某種原因(也許有人會細說了),樣本項目還需要導出的Android支持庫。

6)右鍵單擊示例項目(即ProfilePictureSample),然後單擊屬性。在左側菜單中,轉到Java Build Path。然後在「訂購和導出」選項卡下,選中Android專用庫。

7)項目 - >清潔

希望這可以幫助!