{Facebook的登录} java.lang.NoClassDefFoundError的:android.support.v4.content.LocalBroadcastManagerlang、N

2023-09-08 09:09:14 作者:王八追兔子

我有pretty的多其次本指南信,然而,当应用程序启动和Facebook的会话应该创建的应用程序崩溃。我想,这两个库没有被包含在构建...

 包com.firstandroidapp;

进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.widget.TextView;
进口com.facebook *。
进口com.facebook.model *。

公共类MainActivity延伸活动{

  @覆盖
  公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);

    //开始的Facebook登录
    Session.openActiveSession(这一点,真,新Session.StatusCallback(){

      //回调时,会话状态变化
      @覆盖
      公共无效呼叫(会话的会话,SessionState会状态,例外的例外){
        如果(session.isOpened()){

          //使请求/ ME API
          Request.executeMeRequestAsync(会话,新Request.GraphUserCallback(){

            //后与用户对象图形API响应回调
            @覆盖
            公共无效onCompleted(GraphUser用户,响应响应){
              如果(用户!= NULL){
                TextView的欢迎=(TextView中)findViewById(R.id.welcome);
                welcome.setText(你好+ user.getName()+!);
              }
            }
          });
        }
      }
    });
  }

  @覆盖
  公共无效onActivityResult(INT申请code,INT结果code,意图数据){
      super.onActivityResult(要求code,因此code,数据);
      Session.getActiveSession()onActivityResult(这一点,要求code,因此code,数据)。
  }

}
 

下面的异常堆栈:

  10-16 14:13:30.627:E / AndroidRuntime(28793):致命异常:主要
10-16 14:13:30.627:E / AndroidRuntime(28793):java.lang.NoClassDefFoundError的:android.support.v4.content.LocalBroadcastManager
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.facebook.Session.postActiveSessionAction(Session.java:1327)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.facebook.Session.setActiveSession(Session.java:790)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.facebook.Session.openActiveSession(Session.java:890)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.facebook.Session.openActiveSession(Session.java:830)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.mumin.facebookconnect.FBAuth.onCreate(FBAuth.java:21)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.Activity.performCreate(Activity.java:5104)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2260)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2356)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.ActivityThread.access $ 600(ActivityThread.java:150)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1244)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.os.Handler.dispatchMessage(Handler.java:99)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.os.Looper.loop(Looper.java:137)
10-16 14:13:30.627:E / AndroidRuntime(28793):在android.app.ActivityThread.main(ActivityThread.java:5195)
10-16 14:13:30.627:E / AndroidRuntime(28793):在java.lang.reflect.Method.invokeNative(本机方法)
10-16 14:13:30.627:E / AndroidRuntime(28793):在java.lang.reflect.Method.invoke(Method.java:511)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:795)
10-16 14:13:30.627:E / AndroidRuntime(28793):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
10-16 14:13:30.627:E / AndroidRuntime(28793):在dalvik.system.NativeStart.main(本机方法)
10-16 14:13:38.175:I /流程(28793):发送信号。 PID:28793 SIG:9
 

解决方案

 只需更换
     YourProject \ LIB \ Android的支持,v4.jar
同
     Facebook的Andr​​oid的SDK-x.xx.x \库\ Android的支持,v4.jar

其中,x.xx.x是Facebook的SDK版本,例如3.21.0
 
java程序员 充电 必备书籍,赶紧收了吧

I've pretty much followed this guide to the letter, however, when the application is launched and the Facebook session should be created the app crashes. I'm thinking the libraries aren't being included in the build...

package com.firstandroidapp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.model.*;

public class MainActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // start Facebook Login
    Session.openActiveSession(this, true, new Session.StatusCallback() {

      // callback when session changes state
      @Override
      public void call(Session session, SessionState state, Exception exception) {
        if (session.isOpened()) {

          // make request to the /me API
          Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
              if (user != null) {
                TextView welcome = (TextView) findViewById(R.id.welcome);
                welcome.setText("Hello " + user.getName() + "!");
              }
            }
          });
        }
      }
    });
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
  }

}

Here's the exception stack:

10-16 14:13:30.627: E/AndroidRuntime(28793): FATAL EXCEPTION: main
10-16 14:13:30.627: E/AndroidRuntime(28793): java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.facebook.Session.postActiveSessionAction(Session.java:1327)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.facebook.Session.setActiveSession(Session.java:790)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.facebook.Session.openActiveSession(Session.java:890)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.facebook.Session.openActiveSession(Session.java:830)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.mumin.facebookconnect.FBAuth.onCreate(FBAuth.java:21)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.Activity.performCreate(Activity.java:5104)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2260)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2356)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.ActivityThread.access$600(ActivityThread.java:150)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.os.Looper.loop(Looper.java:137)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at android.app.ActivityThread.main(ActivityThread.java:5195)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at java.lang.reflect.Method.invokeNative(Native Method)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at java.lang.reflect.Method.invoke(Method.java:511)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
10-16 14:13:30.627: E/AndroidRuntime(28793):    at dalvik.system.NativeStart.main(Native Method)
10-16 14:13:38.175: I/Process(28793): Sending signal. PID: 28793 SIG: 9

解决方案

Just replace 
     YourProject\lib\android-support-v4.jar 
with
     facebook-android-sdk-x.xx.x\libs\android-support-v4.jar 

where x.xx.x is the facebook sdk version, e.g. 3.21.0