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

Facebook の SDK for Android を Eclipse で使い始めようとしていたのですが、うまくいきませんでした。ここでさまざまなことを試した後、一貫して機能するソリューションは次のとおりです。

1) Facebook SDK フォルダー (PATH\facebook-android-sdk-3.0.1) だけをインポートします ([ファイル] -> [インポート] -> [既存の Android コードをワークスペースに])。(職場へのコピーはチェックしないでください)

2) サンプル プロジェクトの 1 つだけをインポートします (つまり、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 に答える