Javascript 从facebook导入Friendslist时出错

Javascript 从facebook导入Friendslist时出错,javascript,android,Javascript,Android,我尝试导入到应用程序中的friendslist有问题,这是错误: 04-15 15:09:08.361 13578-13578/com.sitepoint.facebook E/AndroidRuntime: FATAL EXCEPTION: main Process: com.sitepoint.facebook, PID: 13578 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.

我尝试导入到应用程序中的friendslist有问题,这是错误:

04-15 15:09:08.361 13578-13578/com.sitepoint.facebook E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sitepoint.facebook, PID: 13578
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sitepoint.facebook/com.project.you_first.FriendsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
        at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
        at org.json.JSONTokener.nextValue(JSONTokener.java:94)
        at org.json.JSONArray.<init>(JSONArray.java:92)
        at org.json.JSONArray.<init>(JSONArray.java:108)
        at com.project.you_first.FriendsActivity.onCreate(FriendsActivity.java:39)
        at android.app.Activity.performCreate(Activity.java:6237)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5417) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
我尝试使用的教程是,我扔了它,查看了已经完成的代码,但仍然得到了与这一行相同的错误:
friendslist=new-JSONArray(jsondata)

private facebook callback callback=new facebook callback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
Profile Profile=Profile.getCurrentProfile();
触觉(轮廓);
GraphRequestStatSyncTask GraphRequestStatSyncTask=新建GraphRequest(
loginResult.getAccessToken(),
//AccessToken.getCurrentAccessToken(),
“/我/朋友”,
无效的
HttpMethod.GET,
新建GraphRequest.Callback(){
未完成公共空白(图形响应){
意向意向=新意向(LoginActivity.this、MatchActivity.class);
试一试{
JSONArray rawName=response.getJSONObject().getJSONArray(“数据”);
intent.putExtra(“jsondata”,rawName.toString());
星触觉(意向);
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
).executeAsync();
}
@凌驾
public void onCancel(){}
@凌驾
公共无效onError(FacebookException e){}
};
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}

LoginActivity中的代码,对我来说,意图没有问题

它看起来像jsonData是空的。你应该检查你的意图,以确保你得到了你期望的所有价值。有什么想法吗??没什么用我也需要解决办法:(请有人帮帮我们。。。
public class FriendsActivity  extends AppCompatActivity {

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

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Intent intent = getIntent();
        String jsondata = intent.getStringExtra("jsondata");

        JSONArray friendslist;
        ArrayList<String> friends = new ArrayList<String>();

        try {
            friendslist = new JSONArray(jsondata);
            for (int l=0; l < friendslist.length(); l++) {
                friends.add(friendslist.getJSONObject(l).getString("name"));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, friends); // simple textview for list item
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_login, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            logout();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void logout(){

        Intent login = new Intent(FriendsActivity.this, LoginActivity.class);
        startActivity(login);
        LoginManager.getInstance().logOut();
        finish();
    }
}
 private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        Profile profile = Profile.getCurrentProfile();
        nextActivity(profile);

        GraphRequestAsyncTask graphRequestAsyncTask = new GraphRequest(
                loginResult.getAccessToken(),
                //AccessToken.getCurrentAccessToken(),
                "/me/friends",
                null,
                HttpMethod.GET,
                new GraphRequest.Callback() {
                    public void onCompleted(GraphResponse response) {
                        Intent intent = new Intent(LoginActivity.this, MatchActivity.class);
                        try {
                            JSONArray rawName = response.getJSONObject().getJSONArray("data");
                            intent.putExtra("jsondata", rawName.toString());
                            startActivity(intent);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
        ).executeAsync();
    }
    @Override
    public void onCancel() {        }
    @Override
    public void onError(FacebookException e) {      }
};

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