Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Eclipse在android中获取java.lang.NoClassDefFoundError_Java_Android_Eclipse_Facebook_Sdk - Fatal编程技术网

使用Eclipse在android中获取java.lang.NoClassDefFoundError

使用Eclipse在android中获取java.lang.NoClassDefFoundError,java,android,eclipse,facebook,sdk,Java,Android,Eclipse,Facebook,Sdk,当我单击应用程序上的按钮时,我将获得以下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/AndroidRunti

当我单击应用程序上的按钮时,我将获得以下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()类?谢谢

此异常通常意味着您的vm无法找到必要的库。但在运行时发生这种情况似乎很奇怪。
试着检查你的库是否都在那里。

我试图开始使用Facebook的Android SDK和Eclipse,但无法让它工作。在尝试了不同的方法后,这里的解决方案始终有效:

1) 仅导入(文件->导入->现有Android代码到工作区)Facebook SDK文件夹(路径\Facebook-Android-SDK-3.0.1)。(不要检查工作场所的副本)

2) 导入(即PATH\facebook-android-sdk-3.0.1\samples\ProfilePictureSample)只是其中一个示例项目(目前)。我将以ProfilePictureSample为例

如您所见,Eclipse抛出错误,表示它不知道ProfilePictureSampleActivity中的FragmentActivity是什么。FragmentActivity是android支持库的一部分。如果你看一下PackageExplorer,它没有libs文件夹,也没有对android support lirbary的任何引用;它在FacebookSDK图书馆上。我们需要告诉Eclipse将其导出

4) 右键单击FacebookSDK库,然后单击属性。在左侧菜单上,转到Java构建路径。然后在Order and Export选项卡下检查Android私有库(您也可以单击Android-supportv4-jar)

5) 项目->清洁

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

6) 右键单击示例项目(即ProfilePictureSample),然后单击属性。在左侧菜单上,转到Java构建路径。然后在Order和Export选项卡下检查Android私有库

7) 项目->清洁

希望这有帮助