3

我已经搜索了与我的问题相关的所有主题,但找不到解决方案。我正在使用带有 JRE 7.1.0 的 BlackBerry Java Plug-in for Eclipse v1.5.2 编写 Blackberry 应用程序。我目前正在尝试将 Facebook Connect 集成到我的应用程序中,以便用户可以通过 Facebook 登录我们的应用程序。我使用的 Blackberry Facebook SDK 是从这里下载的 0.8.25 版本:

http://sourceforge.net/projects/facebook-bb-sdk/

得到两个jar文件后,FacebookBlackberrySDK-v0.8.25.jar和Log4B-v0.9.4.jar我首先用eclipse成功预验证了它们,并将它们作为库包含到我的项目中。该项目编译成功,但随后出现运行时错误:NoClassDefFoundError. 调试后发现异常是在这一行抛出的:

fb = Facebook.getInstance(new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, Facebook.Permissions.ALL_PERMISSIONS));

我怀疑程序找不到下面的文件 Facebook.class 是我的源代码:

package com.nextmobile.ecourage.net;

import com.blackberry.facebook.ApplicationSettings;
import com.blackberry.facebook.Facebook;

public class FacebookLogin
{
    private final String NEXT_URL = "http://www.facebook.com/connect/login_success.html";
    private final String APPLICATION_ID = "153555168010272";
    private final String APPLICATION_SECRET = "354f91a79c8fe5a8de9d65b55ef9aa1b";
    private Facebook fb;
    private Facebook fb4u;

    public FacebookLogin()
    {
        fb = Facebook.getInstance(new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, Facebook.Permissions.ALL_PERMISSIONS));
        fb4u = Facebook.getInstance(new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, Facebook.Permissions.USER_DATA_PERMISSIONS));
        fb4u.addPermission(Facebook.Permissions.OFFLINE_ACCESS);
    }
}

所以我只用这行代码替换了这些行:

new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, Facebook.Permissions.ALL_PERMISSIONS);

它工作没有给出任何错误。这很奇怪,因为 Facebook.class 和 ApplicationSettings.class 都在同一个目录中,程序可以找到 ApplicationSettings.class 而不是 Facebook.class。

这两个类都在包下:com.blackberry.facebook

有人对此有任何想法吗?谢谢!

4

2 回答 2

0

由于您使用的是 Java SDK,因此您应该查看 RIM 提供的关于将 facebook 和 twitter 集成到您的 BB 应用程序中的示例:https ://github.com/blackberry/Samples-for-Java/tree/master/SocialApp

于 2012-07-27T05:32:14.417 回答
0

可能的原因 ApplicationSettings 是用更高的 java 版本编译的。检查您的项目属性-> java 编译器-> 编译器合规性级别-> 这必须是 1.4

于 2012-09-26T09:04:06.943 回答