質問に関連するすべてのトピックを検索しましたが、解決策が見つかりませんでした。JRE7.1.0でEclipsev1.5.2用のBlackBerryJavaプラグインを使用してBlackberryアプリをコーディングしています。現在、Facebook Connectをアプリに統合して、ユーザーがFacebookを介してアプリにログインできるようにしようとしています。私が使用しているBlackberryFacebookSDKは、ここからダウンロードしたバージョン0.8.25です。
http://sourceforge.net/projects/facebook-bb-sdk/
FacebookBlackberrySDK-v0.8.25.jarとLog4B-v0.9.4.jarの2つの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
誰かがこれについて何か考えを持っていますか?ありがとうございました!