0

私は自分のプロジェクトでFacebookアプリをやっています。

このリンクのサンプルアプリのこのステップに従いました。

http://code.google.com/p/fbconnect-android/downloads/list

今、私は Logcat でこの例外を受け取りました。

02-20 22:02:29.020: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.example.brown/.Brown_FaceBook }
02-20 22:02:29.409: ERROR/dalvikvm(236): Could not find class 'com.codecarpet.fbconnect.FBPermissionActivity', referenced from method com.example.brown.Brown_FaceBook.askPermission
02-20 22:02:29.418: WARN/dalvikvm(236): VFY: unable to resolve const-class 78 (Lcom/codecarpet/fbconnect/FBPermissionActivity;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.418: DEBUG/dalvikvm(236): VFY: replacing opcode 0x1c at 0x0002
02-20 22:02:29.428: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.askPermission code (125 bytes)
02-20 22:02:29.438: INFO/dalvikvm(236): Could not find method com.codecarpet.fbconnect.FBSession.getUid, referenced from method com.example.brown.Brown_FaceBook.checkPermission
02-20 22:02:29.448: WARN/dalvikvm(236): VFY: unable to resolve virtual method 124: Lcom/codecarpet/fbconnect/FBSession;.getUid ()Ljava/lang/Long;
02-20 22:02:29.448: DEBUG/dalvikvm(236): VFY: replacing opcode 0x6e at 0x0009
02-20 22:02:29.457: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.checkPermission code (112 bytes)
02-20 22:02:29.469: ERROR/dalvikvm(236): Could not find class 'com.codecarpet.fbconnect.FBFeedActivity', referenced from method com.example.brown.Brown_FaceBook.publishFeed
02-20 22:02:29.469: WARN/dalvikvm(236): VFY: unable to resolve const-class 75 (Lcom/codecarpet/fbconnect/FBFeedActivity;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.478: DEBUG/dalvikvm(236): VFY: replacing opcode 0x1c at 0x0002
02-20 22:02:29.478: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.publishFeed code (68 bytes)
02-20 22:02:29.497: WARN/dalvikvm(236): Unable to resolve superclass of Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl; (81)
02-20 22:02:29.497: WARN/dalvikvm(236): Link of class 'Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;' failed
02-20 22:02:29.507: ERROR/dalvikvm(236): Could not find class 'com.example.brown.Brown_FaceBook$FBSessionDelegateImpl', referenced from method com.example.brown.Brown_FaceBook.onCreate
02-20 22:02:29.521: WARN/dalvikvm(236): VFY: unable to resolve new-instance 95 (Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.528: DEBUG/dalvikvm(236): VFY: replacing opcode 0x22 at 0x0015
02-20 22:02:29.528: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.onCreate code (292 bytes)
02-20 22:02:29.537: WARN/dalvikvm(236): Unable to resolve superclass of Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl; (81)
02-20 22:02:29.537: WARN/dalvikvm(236): Link of class 'Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;' failed
02-20 22:02:29.547: ERROR/dalvikvm(236): Could not find class 'com.example.brown.Brown_FaceBook$FBSessionDelegateImpl', referenced from method com.example.brown.Brown_FaceBook.onCreate
02-20 22:02:29.558: WARN/dalvikvm(236): VFY: unable to resolve new-instance 95 (Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.558: DEBUG/dalvikvm(236): VFY: replacing opcode 0x22 at 0x007e
02-20 22:02:29.570: DEBUG/AndroidRuntime(236): Shutting down VM
02-20 22:02:29.577: WARN/dalvikvm(236): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
02-20 22:02:29.587: ERROR/AndroidRuntime(236): Uncaught handler: thread main exiting due to uncaught exception
02-20 22:02:29.597: ERROR/AndroidRuntime(236): java.lang.NoClassDefFoundError: com.example.brown.Brown_FaceBook$FBSessionDelegateImpl
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.example.brown.Brown_FaceBook.onCreate(Brown_FaceBook.java:80)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.os.Looper.loop(Looper.java:123)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at  android.app.ActivityThread.main(ActivityThread.java:4363)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at java.lang.reflect.Method.invokeNative(Native Method)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at java.lang.reflect.Method.invoke(Method.java:521)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at dalvik.system.NativeStart.main(Native Method)

ありがとう。

4

3 に答える 3

1

Android アプリ内で依存している別のプロジェクトのクラスを Eclipse がインクルードするのを忘れているように見えるという同様のエラーを以前に見たことがあります。どういうわけか、マニフェストなどに問題がないことをコンパイルおよびチェックするためのクラスが表示され、パッケージ化されていない状態になる可能性があります。依存関係を削除して元に戻すことで修正できる場合があります。

そのサイトからダウンロードすると、2 つのプロジェクトが作成されます。Android プロジェクトは fbconnect-sample と呼ばれます。Java プロジェクトは fbconnect-android と呼ばれます。最初に、両方のプロジェクトがあり、どちらも Eclipse の問題ビューにビルドの問題が表示されていないことを確認してください。プロジェクトメニュー、次にビルドを自動的にチェックする必要があります。パッケージ エクスプローラーには、「fbconnect-android」と「fbconnect-sample」が表示されます。Window menu -> Show View -> Problems には、ビルドの問題は表示されません。

両方のプロジェクトがない場合は、[ファイル] メニュー、[インポート...]、[既存のプロジェクトをワークスペースにインポート] の順に移動し、fbconnect-android.zip ダウンロードから抽出した fbconn ディレクトリを選択して作成します。両方のプロジェクトがダイアログの [Projects:] 見出しの下に表示されたら、[Finish] をクリックします。fbconnect-android プロジェクトを問題なくビルドするには、ANDROID_JAR クラスパス変数を SDK から android.jar に設定する必要があります。

ここで、依存関係を削除して回避策に戻すには、プロジェクト エクスプローラーで fbconnect-sample プロジェクトを右クリックし、[プロパティ]、[Java ビルド パス]、[プロジェクト]、[fbconnect-android]、[削除]、[OK] の順に選択します。fbconnect-sample をもう一度右クリックし、次に Java Build Path、次に Projects、次に Add、次に fbconnect-android、次に OK、次に OK をクリックします。その後、Eclipse は、依存しているプロジェクトのクラスを APK に再びパッケージ化し始めることがあります。私の場合、このダウンロードでは、サンプルはそれなしで Droid フォンで問題なく動作しました。すべてのビルドの問題を取り除くために、既存のプロジェクトをインポートしてクラスパス変数を設定するだけで十分でした。

于 2010-02-21T03:07:23.983 に答える
0

パッケージを実際の展開パッケージに含める場合は、パッケージ エクスプローラーの [Android の依存関係] の下にパッケージを一覧表示する必要があります。参照ライブラリの下にリストされている場合、コンパイラはそれを認識しますが、実行時エラーが発生します。

パッケージエクスプローラーから見る

そこにパッケージを取得するには、[プロジェクト プロパティ] に移動し、[Android] を選択してから、必要なライブラリを [ライブラリ] セクションに追加します (私の例では、FacebookSDK プロジェクトから jar を参照しています)。

プロジェクトのプロパティから見る / Android

于 2013-10-15T19:23:51.650 に答える
0

最後に、facebook lib を Java リファレンスではなく Android (!) として追加することでこれを解決できました + この詳細なドキュメントを読んでください

http://developers.facebook.com/docs/guides/mobile/android/#ref

于 2011-09-19T10:29:11.617 に答える