我已经搜索了与我的问题相关的所有主题,但找不到解决方案。我正在使用带有 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
有人对此有任何想法吗?谢谢!