2016-06-08 65 views
0

这是我的MainActivity。该应用程序给我一个空指针异常在设置的内容视图和应用程序崩溃请帮助。Android中的Facebook集成登录异常setContentView

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.facebook.CallbackManager; 
import com.facebook.FacebookCallback; 
import com.facebook.FacebookException; 
import com.facebook.FacebookSdk; 
import com.facebook.login.LoginResult; 
import com.facebook.login.widget.LoginButton; 

public class MainActivity extends AppCompatActivity { 
private LoginButton loginButton; 
private TextView info; 
private CallbackManager callbackManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);//here I get a nullpointerexception 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    callbackManager = CallbackManager.Factory.create(); 
    info = (TextView) findViewById(R.id.info); 
    loginButton = (LoginButton) findViewById(R.id.login_button); 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      info.setText(
        "User ID: " 
          + loginResult.getAccessToken().getUserId() 
          + "\n" + 
          "Auth Token: " 
          + loginResult.getAccessToken().getToken() 
      ); 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 
      info.setText("Login attempt failed."); 

     } 
    }); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
}} 

以上是我的MainActivity。这个应用程序是给我一个空指针异常的一套内容查看该错误不解决我已经试过各种方法

06-07 22:31:49.398 1020-1020/? E/AndroidRuntime: FATAL EXCEPTION: main 
              Process: com.example.saranshagarwal.facebookintegration1, PID: 1020 
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.saranshagarwal.facebookintegration1/com.example.saranshagarwal.facebookintegration1.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class com.facebook.login.widget.LoginButton 
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
               at android.app.ActivityThread.access$800(ActivityThread.java:135) 
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
               at android.os.Handler.dispatchMessage(Handler.java:102) 
               at android.os.Looper.loop(Looper.java:136) 
               at android.app.ActivityThread.main(ActivityThread.java:5021) 
               at java.lang.reflect.Method.invokeNative(Native Method) 
               at java.lang.reflect.Method.invoke(Method.java:515) 
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
               at dalvik.system.NativeStart.main(Native Method) 
               Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class com.facebook.login.widget.LoginButton 
               at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
               at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
               at com.example.saranshagarwal.facebookintegration1.MainActivity.onCreate(MainActivity.java:23) 
               at android.app.Activity.performCreate(Activity.java:5318) 
               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090) 
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
               at android.app.ActivityThread.access$800(ActivityThread.java:135)  
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
               at android.os.Handler.dispatchMessage(Handler.java:102)  
               at android.os.Looper.loop(Looper.java:136)  
               at android.app.ActivityThread.main(ActivityThread.java:5021)  
               at java.lang.reflect.Method.invokeNative(Native Method)  
               at java.lang.reflect.Method.invoke(Method.java:515)  
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)  
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)  
               at dalvik.system.NativeStart.main(Native Method)  
               Caused by: java.lang.reflect.InvocationTargetException 
               at java.lang.reflect.Constructor.constructNative(Native Method) 
               at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
               at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
               at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
               at com.example.saranshagarwal.facebookintegration1.MainActivity.onCreate(MainActivity.java:23)  
               at android.app.Activity.performCreate(Activity.java:5318)  
               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)  
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)  
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
               at android.app.ActivityThread.access$800(ActivityThread.java:135)  
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
               at android.os.Handler.dispatchMessage(Handler.java:102)  
               at android.os.Looper.loop(Looper.java:136)  
               at android.app.ActivityThread.main(ActivityThread.java:5021)  
               at java.lang.reflect.Method.invokeNative(Native Method)  
               at java.lang.reflect.Method.invoke(Method.java:515)  
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)  
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)  
               at dalvik.system.NativeStart.main(Native Method)  
               Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first. 
               at com.facebook.internal.Validate.sdkInitialized(Validate.java:145) 
               at com.facebook.AccessTokenTracker.<init>(AccessTokenTracker.java:55) 
               at com.facebook.login.widget.LoginButton$2.<init>(LoginButton.java:563) 
               at com.facebook.login.widget.LoginButton.configureButton(LoginButton.java:563) 
               at com.facebook.FacebookButtonBase.<init>(FacebookButtonBase.java:69) 
               at com.facebook.login.widget.LoginButton.<init>(LoginButton.java:201) 
               at java.lang.reflect.Constructor.constructNative(Native Method)  
               at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  
               at android.view.LayoutInflater.createView(LayoutInflater.java:594)  
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
               at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
               at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
               at com.example.saranshagarwal.facebookintegration1.MainActivity.onCreate(MainActivity.java:23)  
               at android.app.Activity.performCreate(Activity.java:5318)  
               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)  
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)  
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
               at android.app.ActivityThread.access$800(ActivityThread.java:135)  
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
               at android.os.Handler.dispatchMessage(Handler.java:102)  
               at android.os.Looper.loop(Looper.java:136)  
               at android.app.ActivityThread.main(ActivityThread.java:5021)  
               at java.lang.reflect.Method.invokeNative(Native Method)  
               at java.lang.reflect.Method.invoke(Method.java:515)  
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)  
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)  
               at dalvik.system.NativeStart.main(Native Method)  

这是我的日志猫

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.saranshagarwal.facebookintegration1"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<application 

    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/app_id" /> 

    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.facebook.FacebookActivity" 
     android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 


</application> 

这是我的清单

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:padding="16dp" 
> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/info" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:textSize="18sp" 
    /> 

<com.facebook.login.widget.LoginButton 
    android:id="@+id/login_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    /> 

这是activity_main.xml中

+0

你可以发布崩溃的日志输出吗? – SripadRaj

+0

[Facebook Sdk尚未启动]的可能重复(http://stackoverflow.com/questions/30213369/facebook-sdk-has-not-been-initilized) –

+0

发布您的XML文件。 –

回答

0

添加正上方的setContentView这行不

FacebookSdk.sdkInitialize(getApplicationContext()); 

后,当你正在使用activity_main XML的Facebook SDK登录按钮,这个XML你在的setContentView和FacebookSdk设置不初始化呢。所以这给你一个空指针异常。

希望这会帮助你。

+0

谁为我的答案downvote ...请告诉我什么是我的答案中的问题。 –