在eclipse中运行Facebook登录示例失败

时间:2013-06-17 07:36:24

标签: android facebook login installation sample

只想测试使用Facebook登录。我从Facebook提供的根软件包导入了SessionLoginSample示例项目和facebookSDK项目,验证了"将项目复制到工作区"没有检查。 (OSX Lion)

对于2个项目,我选择了android 15作为目标版本。我检查了Java合规级别(1.6)。

1)我注意到示例项目没有找到support-v4所以我将它添加为外部Jar(来自Android SDK的extra /目录)。

2)当我运行样本时,我得到了这个: Could not find class 'com.facebook.samples.sessionlogin.LoginUsingCustomFragmentActivity', referenced from method com.facebook.samples.sessionlogin.SessionLoginSampleActivity$2.onClick E/dalvikvm(30852): Could not find class 'com.facebook.samples.sessionlogin.LoginUsingLoginFragmentActivity', referenced from method com.facebook.samples.sessionlogin.SessionLoginSampleActivity$3.onClick

当我点击3个按钮中的一个时,我得到一个像这样的例外: java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager 06-14 16:11:03.385: E/AndroidRuntime(30852): at com.facebook.Session.postActiveSessionAction(Session.java:1215) 06-14 16:11:03.385: E/AndroidRuntime(30852): at com.facebook.Session.setActiveSession(Session.java:765) 06-14 16:11:03.385: E/AndroidRuntime(30852): at com.facebook.samples.sessionlogin.LoginUsingActivityActivity.onCreate(LoginUsing‌​ActivityActivity.java:55) ...

感谢您的帮助:)

3 个答案:

答案 0 :(得分:2)

好的:

1)如前所述,您需要从Facebook SDK(或Extra SDK中的Android SDK)添加support-v4 JAR

2)在SessionLoginSample的项目属性中,转到Java Build Path,Order和Export你需要检查support-v4 Jar包

答案 1 :(得分:1)

浏览以选择SDK文件夹的根目录facebook-android-sdk-3.0.1。 SDK应该在列表中显示为“FacebookSDK”以及所有示例。 FacebookSDK是必须在您的应用程序中引用的库项目。在您的工作区中导入该库。

您的项目应在导入FacebookSDK库后在工作区中显示,项目应正确引用邻近的“ FacebookSDK ”库项目。

enter image description here

答案 2 :(得分:0)

使用这种方式生成哈希密钥。 使用单独的类并添加此代码并获取哈希键。将其保存在您的开发者Facebook网站上,然后重试。

尝试{ PackageInfo info = getPackageManager()。getPackageInfo(“your.package”, PackageManager.GET_SIGNATURES); for(签名签名:info.signatures){ MessageDigest md = MessageDigest.getInstance(“SHA”); md.update(signature.toByteArray()); Log.d(“YOURHASH KEY:”, Base64.encodeToString(md.digest(),Base64.DEFAULT)); } } catch(NameNotFoundException e){

} catch(NoSuchAlgorithmException e){

}

感谢。