适用于android的facebook SDK 3.6,无碎片
我正试图让facebook进入我的应用程序。因此,我尝试了一个简单的测试应用程序,用户按下登录按钮,就会显示他的姓名和个人资料图片。这是我的密码适用于android的facebook SDK 3.6,无碎片,android,facebook,facebook-graph-api,android-fragments,Android,Facebook,Facebook Graph Api,Android Fragments,我正试图让facebook进入我的应用程序。因此,我尝试了一个简单的测试应用程序,用户按下登录按钮,就会显示他的姓名和个人资料图片。这是我的密码 public class login extends Activity { private GraphUser user; private LoginButton loginbut; TextView username; ProfilePictureView userpic; private UiLifecycleHelper uihelper;
public class login extends Activity {
private GraphUser user;
private LoginButton loginbut;
TextView username;
ProfilePictureView userpic;
private UiLifecycleHelper uihelper;
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
// TODO Auto-generated method stub
onsessionstatechange(session, state, exception);
}
};
private void setuploginandprofilepic()
{
loginbut = (LoginButton) findViewById(R.id.login_button);
loginbut.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {
@Override
public void onUserInfoFetched(GraphUser user) {
// TODO Auto-generated method stub
login.this.user = user;
updateprofile();
}
});
}
private void updateprofile() {
// T
ODO Auto-generated method stub
TextView username = (TextView) findViewById(R.id.username);
ProfilePictureView userpic = (ProfilePictureView) findViewById(R.id.userpic);
userpic.setCropped(true);
Session session = Session.getActiveSession();
boolean validsession = session!=null && session.isOpened();
if(validsession && user != null)
{
makemerequest(session);
}else
{
userpic.setProfileId(null);
username.setText("Not There");
}
}
private void makemerequest(Session session){
Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
userpic.setProfileId(user.getId());
username.setText(user.getFirstName());
}
});
request.executeAsync();
}
private void onsessionstatechange(Session session, SessionState state, Exception exception)
{
if(session.isOpened())
{
Toast.makeText(this, "OPEN", Toast.LENGTH_SHORT).show();
}
else if(session.isClosed())
{
Toast.makeText(this, "CLOSED", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
uihelper = new UiLifecycleHelper(this, callback);
uihelper.onCreate(savedInstanceState);
setuploginandprofilepic();
setContentView(R.layout.testlayout);
// ProfilePictureView pp = (ProfilePictureView) findViewById(R.id.selection_profile_pic);
// TextView tv = (TextView) findViewById(R.id.selection_user_name);
// Session session = new Session(getApplicationContext());
// Session.setActiveSession(session);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
uihelper.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
uihelper.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
uihelper.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
uihelper.onResume();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
uihelper.onSaveInstanceState(outState);
}
}
这是我的日志:
01-09 18:03:56.800: I/dalvikvm(8234): Could not find method android.support.v4.content.LocalBroadcastManager.getInstance, referenced from method com.facebook.UiLifecycleHelper.<init>
01-09 18:03:56.800: W/dalvikvm(8234): VFY: unable to resolve static method 222: Landroid/support/v4/content/LocalBroadcastManager;.getInstance (Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager;
01-09 18:03:56.800: D/dalvikvm(8234): VFY: replacing opcode 0x71 at 0x0019
01-09 18:03:56.820: I/dalvikvm(8234): Could not find method android.support.v4.content.LocalBroadcastManager.unregisterReceiver, referenced from method com.facebook.UiLifecycleHelper.onPause
01-09 18:03:56.820: W/dalvikvm(8234): VFY: unable to resolve virtual method 225: Landroid/support/v4/content/LocalBroadcastManager;.unregisterReceiver (Landroid/content/BroadcastReceiver;)V
01-09 18:03:56.820: D/dalvikvm(8234): VFY: replacing opcode 0x6e at 0x0004
01-09 18:03:56.830: I/dalvikvm(8234): Could not find method android.support.v4.content.LocalBroadcastManager.registerReceiver, referenced from method com.facebook.UiLifecycleHelper.onResume
01-09 18:03:56.830: W/dalvikvm(8234): VFY: unable to resolve virtual method 223: Landroid/support/v4/content/LocalBroadcastManager;.registerReceiver (Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
01-09 18:03:56.830: D/dalvikvm(8234): VFY: replacing opcode 0x6e at 0x0032
01-09 18:03:56.840: D/AndroidRuntime(8234): Shutting down VM
01-09 18:03:56.840: W/dalvikvm(8234): threadid=1: thread exiting with uncaught exception (group=0x40a95228)
01-09 18:03:56.840: E/AndroidRuntime(8234): FATAL EXCEPTION: main
01-09 18:03:56.840: E/AndroidRuntime(8234): java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
01-09 18:03:56.840: E/AndroidRuntime(8234): at com.facebook.UiLifecycleHelper.<init>(UiLifecycleHelper.java:72)
01-09 18:03:56.840: E/AndroidRuntime(8234): at com.droidlearnx.hwtofb.login.onCreate(login.java:85)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.Activity.performCreate(Activity.java:4538)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.ActivityThread.access$600(ActivityThread.java:139)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.os.Handler.dispatchMessage(Handler.java:99)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.os.Looper.loop(Looper.java:156)
01-09 18:03:56.840: E/AndroidRuntime(8234): at android.app.ActivityThread.main(ActivityThread.java:4987)
01-09 18:03:56.840: E/AndroidRuntime(8234): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 18:03:56.840: E/AndroidRuntime(8234): at java.lang.reflect.Method.invoke(Method.java:511)
01-09 18:03:56.840: E/AndroidRuntime(8234): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-09 18:03:56.840: E/AndroidRuntime(8234): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-09 18:03:56.840: E/AndroidRuntime(8234): at dalvik.system.NativeStart.main(Native Method)
01-09 18:03:58.261: D/Process(8234): killProcess, pid=8234
01-09 18:03:58.271: D/Process(8234): dalvik.system.VMStack.getThreadStackTrace(Native Method)
01-09 18:03:58.271: D/Process(8234): java.lang.Thread.getStackTrace(Thread.java:599)
01-09 18:03:58.271: D/Process(8234): android.os.Process.killProcess(Process.java:807)
01-09 18:03:58.271: D/Process(8234): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:104)
01-09 18:03:58.281: D/Process(8234): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
01-09 18:03:58.281: D/Process(8234): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
01-09 18:03:58.291: D/Process(8234): dalvik.system.NativeStart.main(Native Method)
01-09 18:03:58.291:
I/Process(8234): Sending signal. PID: 8234 SIG: 9
我已经尝试了我能做的一切,而且我似乎能克服它。我是facebook sdk的新手,这是我第一次使用它。我试图做到这一点而不使用片段,因为它是在facebook开发者页面上。我需要为此学习片段吗?或者我可以通过活动来解决问题吗
感谢您的帮助。步骤1:添加Android私有库项目属性->Java构建路径->订单和导出 步骤2:清理项目并再次运行
它将解决问题。在updateProfile方法中。。//T ODO自动生成的方法存根是这里的错误还是您的代码中的错误?java.lang.NoClassDefFoundError:android.support.v4.content.LocalBroadcastManager是否添加了android support v4library@coderji这真的重要吗,因为它仍然被评论。。还没有working@D_Vaibhav我正在浏览,上面写着要删除lib。虽然我已经试过了,但是没有效果。另请参见。@MayankSharma该教程链接指出,您需要删除当前jar,并将support v4 jar从facebook sdk的libs文件夹复制到您的apps libs文件夹。您需要删除项目libs文件夹下的android-support-v4.jar,并将FacebookSDK项目libs文件中的相同文件放在此处。