簡體   English   中英

使用Eclipse在Android中獲取java.lang.NoClassDefFoundError

[英]Getting java.lang.NoClassDefFoundError in android with Eclipse

單擊應用程序上的按鈕時,我得到以下Logcat信息:

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()? 謝謝!

我試圖開始在Eclipse中使用Facebook的Android SDK,但無法正常工作。 在嘗試了不同的方法之后,下面是始終有效的解決方案:

1)僅將Facebook SDK文件夾(PATH \\ facebook-android-sdk-3.0.1)導入(文件->導入->現有Android代碼到工作區)。 (請勿將副本檢查到工作場所)

2)僅導入其中一個示例項目(即PATH \\ facebook-android-sdk-3.0.1 \\ samples \\ ProfilePictureSample)。 我將以ProfilePictureSample為例

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

4)右鍵單擊FacebookSDK庫,然后單擊屬性。 在左側菜單上,轉到Java Build Path。 然后在“訂購和導出”選項卡下,檢查“ Android私有庫”(您也可以單擊“ android-supportv4-jar”)。

5)項目->清潔

現在由於某種原因(也許有人可以詳細說明),示例項目也需要導出android支持庫。

6)右鍵單擊示例項目(即ProfilePictureSample),然后單擊屬性。 在左側菜單上,轉到Java Build Path。 然后在“訂購和導出”選項卡下,選中“ Android私有庫”。

7)項目->清潔

希望這會有所幫助!

此異常通常意味着您的vm無法找到必要的庫。 盡管它在運行時發生似乎很奇怪。 嘗試檢查您的庫是否全部存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM