【问题标题】:could not find class exception facebook on android app.how?在 android app.how 上找不到类异常 facebook?
【发布时间】:2010-02-20 16:41:57
【问题描述】:

我正在我的项目中做 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)

谢谢。

【问题讨论】:

    标签: android facebook fbconnect


    【解决方案1】:

    在 Eclipse 似乎忘记在您的 Android 应用程序中包含您依赖的另一个项目中的类之前,我已经看到过类似的错误。不知何故,它可以进入一种状态,它可以看到用于编译和检查清单没有问题等的类,但不打包它们。有时可以通过删除依赖项并将其放回去来修复它。

    从该站点的下载中,您应该有两个项目。 Android 项目名为 fbconnect-sample。 Java 项目称为 fbconnect-android。首先确保您拥有两个项目,并且在 Eclipse Problems 视图中都没有显示任何构建问题。项目菜单,然后自动构建应该被选中。包资源管理器应列出“fbconnect-android”和“fbconnect-sample”。窗口菜单 -> 显示视图 -> 问题应该没有显示构建问题。

    如果您没有这两个项目,它们是通过依次转到文件菜单、导入...、将现有项目导入工作区,然后选择从 fbconnect-android.zip 下载中提取的 fbconn 目录来创建的。两个项目都应该显示在 Projects: 对话框的标题下,然后点击 Finish。 fbconnect-android 项目需要将 ANDROID_JAR 类路径变量设置为 SDK 中的 android.jar 才能顺利构建。

    现在,要尝试删除依赖项并将其放回解决方法,请在 Project Explorer 中右键单击 fbconnect-sample 项目,选择 Properties,然后选择 Java Build Path,然后选择 Projects,然后选择 fbconnect-android,然后是 Remove,然后好的。现在再次右键单击 fbconnect-sample,然后是 Java Build Path,然后是 Projects,然后是 Add,然后是 fbconnect-android,然后是 OK,然后是 OK。有时,在这样做之后,Eclipse 会再次将您所依赖的项目中的类打包到 APK 中。在我的情况下,对于这个下载,没有它,样本在我的 Droid 手机上运行良好。只需导入现有项目并设置类路径变量以消除所有构建问题就足够了。

    【讨论】:

    • 嘿,请在您的回答中详细说明此声明。“fbconnect-android 项目需要一个 ANDROID_JAR 类路径变量从 SDK 设置为 android.jar 以便构建没有问题。”
    • 我为 fbconn-android 得到了这个。未绑定的类路径变量:项目“fbconnect-android”中的“ANDROID_JAR” fbconnect-android 构建路径构建路径问题。怎么办??
    • fbconnect-android 是 Java 项目,而不是 Android 项目。但是,它确实引用了 Android 类。因此,为了编译,它需要类路径中的 Android 类。这是由其设置页面上详述的类路径变量 ANDROID_JAR 完成的:code.google.com/p/fbconnect-android/wiki/Setup。基本上,您只需要在 Eclipse 的 Java 构建路径对话框中设置该变量,使其指向 sdk 平台目录中的 android.jar。
    【解决方案2】:

    最后我设法通过将 facebook 库添加为 android (!) 而不是 Java 参考来解决这个问题 + 阅读此详细文档

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

    【讨论】:

      【解决方案3】:

      如果您希望这些包最终出现在实际部署包中,则应在包资源管理器的“Android 依赖项”下列出这些包。如果它在引用的库下列出,那么编译器会看到它,但你会得到运行时错误。

      为了在此处获取包,请转到项目属性,选择 Android,然后将所需库添加到库部分(在我的示例中,我从 FacebookSDK 项目中引用了一个 jar)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        相关资源
        最近更新 更多