Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio 每次我运行android应用程序时,它都会意外崩溃_Android Studio_Crash_Logcat - Fatal编程技术网

Android studio 每次我运行android应用程序时,它都会意外崩溃

Android studio 每次我运行android应用程序时,它都会意外崩溃,android-studio,crash,logcat,Android Studio,Crash,Logcat,[这是我的MainActivity.java文件][1] package com.example.socialmediaintegration; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glid

[这是我的MainActivity.java文件][1]

package com.example.socialmediaintegration;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.facebook.AccessToken;
import com.facebook.AccessTokenTracker;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.GraphRequest;
import com.facebook.GraphResponse;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.Arrays;


import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import de.hdodenhof.circleimageview.CircleImageView;
公共类MainActivity扩展了AppCompatActivity{

private LoginButton loginButton;
private CircleImageView circleImageView;
private TextView txtName, txtEmail;

private CallbackManager callbackManager;

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

   // private static final String EMAIL = "email";

    loginButton =  findViewById(R.id.login_button);
    circleImageView = findViewById(R.id.profile_pic);
    txtName = findViewById(R.id.profile_name);
    txtEmail = findViewById(R.id.profile_email);

    callbackManager = CallbackManager.Factory.create();
    loginButton.setPermissions(Arrays.asList("email", "public_profile"));
    checkLoginStatus();


    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {

        }
    });

}

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

AccessTokenTracker tokenTracker = new AccessTokenTracker() {
    @Override
    protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {

        if (currentAccessToken == null)
        {
            txtName.setText("");
            txtEmail.setText("");
            circleImageView.setImageResource(0);
            Toast.makeText(MainActivity.this, "User Logged out", Toast.LENGTH_LONG).show();
        }
        else {
            loadUserProfile(currentAccessToken);
        }
    }
};

private void loadUserProfile(AccessToken newAccessToken){
    GraphRequest request = GraphRequest.newMeRequest(newAccessToken, new GraphRequest.GraphJSONObjectCallback() {
        @Override
        public void onCompleted(JSONObject object, GraphResponse response) {
            try {
                String first_name = object.getString("first_name");
                String last_name = object.getString("last_name");
                String email = object.getString("email");
                String id = object.getString("id");

                String image_url =  "http://graph.facebook.com/"+id+"/picture?type=normal";

                txtEmail.setText(email);
                txtName.setText(first_name + " " + last_name);
                RequestOptions requestOptions = new RequestOptions();
                requestOptions.dontAnimate();

                Glide.with( MainActivity.this).load(image_url).into(circleImageView);

            } catch (JSONException e){
                e.printStackTrace();
            }


        }
    });

    Bundle parameters = new Bundle();
    parameters.putString("fields", "first_name, last_name, email_id");
    request.setParameters(parameters);
    request.executeAsync();
}

private void checkLoginStatus(){

    if (AccessToken.getCurrentAccessToken()!=null)
    {
        loadUserProfile(AccessToken.getCurrentAccessToken());
    }
}
私人登录按钮登录按钮;
私有CircleImageView CircleImageView;
私有文本视图txtName,txtmail;
私人CallbackManager CallbackManager;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//私有静态最终字符串EMAIL=“EMAIL”;
loginButton=findviewbyd(R.id.login_按钮);
circleImageView=findViewById(R.id.profile_pic);
txtName=findviewbyd(R.id.profile\u name);
txtEmail=findviewbyd(R.id.profile\u电子邮件);
callbackManager=callbackManager.Factory.create();
设置权限(Arrays.asList(“email”、“public_profile”);
checkLoginStatus();
registerCallback(callbackManager,newfacebookcallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
}
@凌驾
公开作废{
}
@凌驾
public void onError(facebook异常错误){
}
});
}
@凌驾
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
callbackManager.onActivityResult(请求代码、结果代码、数据);
super.onActivityResult(请求代码、结果代码、数据);
}
AccessTokenTracker tokenTracker=新的AccessTokenTracker(){
@凌驾
受保护的onCurrentAccessTokenChanged无效(AccessToken oldAccessToken、AccessToken currentAccessToken){
如果(currentAccessToken==null)
{
txtName.setText(“”);
txtEmail.setText(“”);
circleImageView.setImageResource(0);
Toast.makeText(MainActivity.this,“用户注销”,Toast.LENGTH_LONG.show();
}
否则{
loadUserProfile(currentAccessToken);
}
}
};
私有void loadUserProfile(AccessToken newAccessToken){
GraphRequest request=GraphRequest.NewMereRequest(newAccessToken,new GraphRequest.GraphJSONObjectCallback()){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
试一试{
String first_name=object.getString(“first_name”);
String last_name=object.getString(“last_name”);
String email=object.getString(“email”);
stringid=object.getString(“id”);
字符串图像\u url=”http://graph.facebook.com/“+id+”/picture?type=normal”;
txtEmail.setText(电子邮件);
txtName.setText(名字+“”+姓氏);
RequestOptions RequestOptions=newrequestoptions();
requestOptions.dontAnimate();
Glide.with(MainActivity.this).load(image\uURL).into(circleImageView);
}捕获(JSONException e){
e、 printStackTrace();
}
}
});
Bundle参数=新Bundle();
parameters.putString(“字段”、“名字、姓氏、电子邮件id”);
请求。设置参数(参数);
request.executeAsync();
}
私有void checkLoginStatus(){
if(AccessToken.getCurrentAccessToken()!=null)
{
loadUserProfile(AccessToken.getCurrentAccessToken());
}
}
}

这是我的错误,显示在Logcat-->

2020-10-12 12:01:23.621 19597-19602/com.example.socialMediaMaintegration I/zyote:将代码缓存容量增加到256KB 2020-10-12 12:01:27.373 19597-19623/com.example.socialmediaintegration E/GraphResponse:{HttpStatus:400,错误代码:100,子错误代码:33,错误类型:GraphMethodException,错误消息:不支持的get请求。 ID为“980066249173751”的对象不存在,由于缺少权限而无法加载,或者不支持此操作。请阅读位于的图形API文档 2020-10-12 12:01:32.329 19597-19623/com.example.socialmediaintegration E/GraphResponse:{HttpStatus:400,错误代码:100,子错误代码:-1,错误类型:OAutheException,错误消息:(#100)尝试访问节点类型(用户)上不存在的字段(电子邮件id)} 2020-10-12 12:01:32.329 19597-19597/com.example.socialmediainment D/AndroidRuntime:关闭虚拟机 2020-10-12 12:01:32.332 19597-19597/com.example.socialmedia维护E/AndroidRuntime:致命异常:main 流程:com.example.socialMediaMaintentIntegration,PID:19597
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String org.json.JSONObject.getString(java.lang.String)” 位于com.example.socialmediaintegration.MainActivity$3.onCompleted(MainActivity.java:102) 在com.facebook.GraphRequest$1.onCompleted上(GraphRequest.java:317) 在com.facebook.GraphRequest$5.run(GraphRequest.java:1398) 位于android.os.Handler.handleCallback(Handler.java:790) 位于android.os.Handler.dispatchMessage(Handler.java:99) 位于android.os.Looper.loop(Looper.java:164) 位于android.app.ActivityThread.main(ActivityThread.java:6626) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)的错误行中

Attempt to invoke virtual method 'java.lang.String 
org.json.JSONObject.getString(java.lang.String)' on a null object reference

据说您的JSONObject实例为null并抛出NullPointerException

在从JSONObject读取数据之前,首先需要检查请求是否成功

检查处理错误部分


NullPointerException您能帮我修复它吗!请在您的问题中添加一些代码,然后我们可能能够获取准确的错误。如何修复?Facebook SDK文档说您可以从GraphResponse检查请求是否成功,检查是否成功,然后尝试从JSONObject获取数据