只想测试使用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(LoginUsingActivityActivity.java:55) ...
感谢您的帮助:)
答案 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 ”库项目。
答案 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){
}
感谢。