Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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 安卓尝试调用虚拟方法';int java.lang.String.length()';关于空对象引用_Android_Facebook Graph Api - Fatal编程技术网

Android 安卓尝试调用虚拟方法';int java.lang.String.length()';关于空对象引用

Android 安卓尝试调用虚拟方法';int java.lang.String.length()';关于空对象引用,android,facebook-graph-api,Android,Facebook Graph Api,我正在尝试将我的应用程序与社交网络(facebook)集成,这里需要一些帮助。我正在试着吃东西。当我运行应用程序时,我得到一个致命的异常错误 FATAL EXCEPTION: main Process: com.example.vladzakharo.facebookapp, PID: 2428 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a

我正在尝试将我的应用程序与社交网络(facebook)集成,这里需要一些帮助。我正在试着吃东西。当我运行应用程序时,我得到一个致命的异常错误

FATAL EXCEPTION: main
Process: com.example.vladzakharo.facebookapp, PID: 2428
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.JSONObject.<init>(JSONObject.java:156)
     at org.json.JSONObject.<init>(JSONObject.java:173)
     at com.example.vladzakharo.facebookapp.CentralActivity$2.onCompleted(CentralActivity.java:88)
     at com.facebook.GraphRequest$5.run(GraphRequest.java:1379)
     at android.os.Handler.handleCallback(Handler.java:739)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     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)
致命异常:main
进程:com.example.vladzakharo.facebookapp,PID:2428
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“int java.lang.String.length()”
位于org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
位于org.json.JSONTokener.nextValue(JSONTokener.java:94)
位于org.json.JSONObject(JSONObject.java:156)
位于org.json.JSONObject(JSONObject.java:173)
位于com.example.vladzakharo.facebookapp.CentralActivity$2.onCompleted(CentralActivity.java:88)
在com.facebook.GraphRequest$5.run(GraphRequest.java:1379)
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这是我的课

public class CentralActivity extends AppCompatActivity {

Button btnPublish;
ListView listView;
public ArrayList<HashMap<String, String>> list;
public String Message;
public  String Name;
public String Caption;
public String Description;
public String Picture;
public String Link;
public String Id;

public static final String MESSAGE = "message";
public static final String NAME = "name";
public static final String CAPTION = "caption";
public static final String DESCRIPTION = "description";
public static final String PICTURE = "picture";
public static final String LINK = "link";
public static final String ID = "id";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_central);

    list = new ArrayList<>();
    listView = (ListView) findViewById(R.id.listView);
    btnPublish = (Button) findViewById(R.id.btnPublish);
    btnPublish.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Publish();
        }
    });

    getFeed();
}

private void Publish(){
    Intent goPublish = new Intent(CentralActivity.this, PublishActivity.class);
    startActivity(goPublish);
}

protected void getFeed(){
    new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "me/feed?fields=message,name,caption,description,picture,link",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    JSONObject json;
                    try{
                        json = new JSONObject(response.getRawResponse());
                        JSONArray jArray = json.getJSONArray("data");
                        for(int i = 0; i < jArray.length(); i++){
                            Message = jArray.getJSONObject(i).get("message").toString();
                            Name = jArray.getJSONObject(i).get("name").toString();
                            Caption = jArray.getJSONObject(i).get("caption").toString();
                            Description = jArray.getJSONObject(i).get("description").toString();
                            Picture = jArray.getJSONObject(i).get("picture").toString();
                            Link = jArray.getJSONObject(i).get("link").toString();
                            Id = jArray.getJSONObject(i).get("id").toString();

                            HashMap<String, String> hm = new HashMap<>();
                            hm.put(MESSAGE, Message);
                            hm.put(NAME, Name);
                            hm.put(CAPTION, Caption);
                            hm.put(DESCRIPTION, Description);
                            hm.put(PICTURE, Picture);
                            hm.put(LINK, Link);
                            hm.put(ID, Id);
                            list.add(hm);

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }
    ).executeAsync();
    ListAdapter adapter = new SimpleAdapter(this, list, R.layout.list_item,
            new String[]{MESSAGE, NAME, CAPTION, DESCRIPTION },
            new int[]{R.id.text1, R.id.text2, R.id.text3, R.id.text4});
    listView.setAdapter(adapter);
}
公共类中心性扩展了AppCompativity活动{
按钮btnPublish;
列表视图列表视图;
公共阵列列表;
公共字符串消息;
公共字符串名称;
公共字符串标题;
公共字符串描述;
公共字符串图片;
公共字符串链接;
公共字符串Id;
公共静态最终字符串MESSAGE=“MESSAGE”;
公共静态最终字符串NAME=“NAME”;
公共静态最终字符串CAPTION=“CAPTION”;
公共静态最终字符串DESCRIPTION=“DESCRIPTION”;
公共静态最终字符串PICTURE=“PICTURE”;
公共静态最终字符串LINK=“LINK”;
公共静态最终字符串ID=“ID”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(getApplicationContext());
setContentView(R.layout.activity_central);
列表=新的ArrayList();
listView=(listView)findViewById(R.id.listView);
btnPublish=(按钮)findViewById(R.id.btnPublish);
btnPublish.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
发布();
}
});
getFeed();
}
私有无效发布(){
Intent goPublish=新的Intent(CentralActivity.this,PublishActivity.class);
星触觉(goPublish);
}
受保护的void getFeed(){
新格力探索(
AccessToken.getCurrentAccessToken(),
“me/feed?字段=消息、名称、标题、描述、图片、链接”,
无效的
HttpMethod.GET,
新建GraphRequest.Callback(){
@凌驾
未完成公共空白(图形响应){
JSONObject json;
试一试{
json=新的JSONObject(response.getRawResponse());
JSONArray jArray=json.getJSONArray(“数据”);
for(int i=0;i

}

您应该查看第88行(参见Stasktrace:
位于com.example.vladzakharo.facebookapp.CentralActivity$2.onCompleted(CentralActivity.java:88)
,您可以从以下字符串中获得:

jArray.getJSONObject(i).get("xxx")
很可能返回null,导致NPE

也可能是

jArray.getJSONObject(i)

返回空值。

您应该查看第88行(请参见Stasktrace:
位于com.example.vladzakharo.facebookapp.CentralActivity$2.onCompleted(CentralActivity.java:88)
,您可以从以下字符串中获得:

jArray.getJSONObject(i).get("xxx")
很可能返回null,导致NPE

也可能是

jArray.getJSONObject(i)
返回null