0

单击应用程序上的按钮时,我收到以下 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()?谢谢!

4

2 回答 2

1

我试图开始在 Eclipse 中使用 Facebook 的 Android SDK,但无法正常工作。在尝试不同的事情之后,这里是始终有效的解决方案:

1) 仅导入 (File->Import->Existing Android Code Into Workspace) 仅 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 支持库的任何引用;它位于 FacebookSDK 库中。我们需要告诉 Eclipse 导出它。

4) 右键单击​​ FacebookSDK 库,然后单击属性。在左侧菜单中,转到 Java Build Path。然后在 Order and Export 选项卡下检查 Android Private Libraries(您也可以点击 android-supportv4-jar 代替)。

5)项目->清理

现在由于某种原因(也许有人可以详细说明),示例项目还需要导出android支持库。

6) 右键单击​​示例项目(即 ProfilePictureSample),然后单击属性。在左侧菜单中,转到 Java Build Path。然后在 Order and Export 选项卡下检查 Android Private Libraries。

7)项目->清洁

希望这会有所帮助!

于 2013-06-20T17:06:20.507 回答
0

这个异常通常意味着你的虚拟机找不到必要的库。不过,它发生在运行时似乎很奇怪。尝试检查您的库是否都在那里。

于 2013-06-20T09:33:01.657 回答