2017-12-30 21 views
-1

Ich habe eine App, die einige Facebook-Post durch Facebook Graph erhält. Alles funktioniert gut auf meinen Handys (Cubot Note S & & UMI Diamond), aber wenn ich versuche, die App auf einem anderen Handy in meinem Fall LG K10 (2017) zu öffnen. Ich bekomme den Fehler: java.lang.NullPointerException: und ich weiß nicht warum, denn auf den ersten Handys funktionierte diese App sehr gut. HierFacebook Grafik java.lang.NullPointerException

java.lang.NullPointerException: Attempt to invoke virtual method 
'java.util.List com.gireada.***.Posts2.getData()' on a null object reference 
at com.gireada.***.MainActivity$3$1.onCompleted(MainActivity.java:153) 

ist die Linie

for (int i = 0; i < (variabila2.getPosts().getData().size()) - 1; i++) 

Jedes Mal, wenn ich versuche, variabila2.getPosts().... zuzugreifen es gibt mir diese Fehlermeldung:

ersten zwei Telefon haben 6,0 android und LG haben 7,0, könnte sein, Das ist ein Problem?

Ich habe GraphCall mit dieser Methode:

GraphRequest request = GraphRequest.newMeRequest(
           accessToken, 
           new GraphRequest.GraphJSONObjectCallback() { 
            @Override 
            public void onCompleted(
              JSONObject object, 
              GraphResponse response) { 
            System.out.println(object); 
            Log.d("Profil ", object.toString()); 


globalObject.setCurentToken(AccessToken.getCurrentAccessToken()); 
            String nome; 
             /*if (jObjResponse.has("name")) { 
              nome = 

jObjResponse.getString("name"); 
               globalObject.setNume(nome); 
              } 
              if (jObjResponse.has("id")) { 
               nome = jObjResponse.getString("id"); 
               globalObject.setID_User(nome); 
              }*/ 
              variabila2 = new Gson().fromJson(object.toString(), Variable2.class); 
    //           System.out.println(variabila2.getPosts().toString()); 
    //           Log.d("Link ", variabila2.getPosts().getData().get(0).getLink()); 
              for (int i = 0; i < (variabila2.getPosts().getData().size()) - 1; i++) 
              { 
               Log.d("Link ", variabila2.getPosts().getData().get(i).getLink()); 
               if (variabila2.getPosts().getData().get(i).getCreated_time() != null) 
                globalObject.setCreated_global(variabila2.getPosts().getData().get(i).getCreated_time(), i); 
               else 
                globalObject.setCreated_global(null, i); 

               globalObject.setLink_global(variabila2.getPosts().getData().get(i).getLink(), i); 
               Log.d("Link Personal", variabila2.getPosts().getData().get(i).getLink()); 
               if (variabila2.getPosts().getData().get(i).getFull_picture() != null) 
                globalObject.setLink_pictures(variabila2.getPosts().getData().get(i).getFull_picture(), i); 
               else 
                globalObject.setLink_pictures(null, i); 
              } 
             } 
            }); 
          Bundle parameters = new Bundle(); 
          parameters.putString("fields", "id,name,posts.limit(100){link,created_time,description,full_picture}"); 
          request.setParameters(parameters); 
          request.executeAsync(); 

**Variable2 class** 

    public class Variable2 
    { 
     public String status; 
     public Feed feed; 
     Posts2 posts; 
     Picture picture; 
     public Variable2(Posts2 posts2) { 
      this.posts = posts2; 
     } 
     public String getStatus() { 
      return status; 
     } 
     public void setStatus(String status) { 
      this.status = status; 
     } 
     public Feed getFeed() { 
      return feed; 
     } 
     public void setFeed(Feed feed) { 
      this.feed = feed; 
     } 
     public Posts2 getPosts() { 
      return posts; 
     } 
     public void setPosts(Posts2 posts) { 
      this.posts = posts; 
     } 
     public Picture getPicture() { 
      return picture; 
     } 
     public void setPicture(Picture picture) { 
      this.picture = picture; 
     } 
    } 

**Post2 class** 


    public class Posts2 { 
     public List<Item2> data; 

     public Posts2(List<Item2> data) { 
      this.data = data; 
     } 

     public List<Item2> getData() { 
      return data; 
     } 

     public void setData(List<Item2> data) { 
      this.data = data; 
     } 
    } 

**Item2 class** 

    public class Item2 { 
     public String link; 
     public String created_time; 
     public String full_picture; 
     public String description; 
     public String id; 
     public Item2(String link, String created_time, String description, String full_picture, String id) { 
      this.link = link; 
      this.created_time = created_time; 
      this.description = description; 
      this.full_picture = full_picture; 
      this.id = id; 
     } 

     public String getLink() { 
      return link; 
     } 

     public void setLink(String link) { 
      this.link = link; 
     } 

     public String getCreated_time() { 
      return created_time; 
     } 

     public void setCreated_time(String created_time) { 
      this.created_time = created_time; 
     } 

     public String getDescription() { 
      return description; 
     } 

     public void setDescription(String description) { 
      this.description = description; 
     } 

     public String getFull_picture() { 
      return full_picture; 
     } 

     public void setFull_picture(String full_picture) { 
      this.full_picture = full_picture; 
     } 

     public String getId() { 
      return id; 
     } 

     public void setId(String id) { 
      this.id = id; 
     } 

    } 

Dies auf meinen ersten Telefonen funktioniert, aber auf diesem Telefon (vielleicht auf anderen Telefonen) es funktioniert nicht.

Bitte helfen Sie mir, wenn Sie eine Idee zu diesem Problem haben.

+0

Fügen Sie hier Ihre JSON-Antwort hinzu. –

+0

{"id": "2016399981939546", "Name": "Grigore Saveluc Rodica"}. Jetzt sehe ich, warum mir NullPoint gibt. Aber warum gib mir nicht Post an diesem Telefon. Auf Cubot: {"id": "1813718138656862", "Name": "Iulian Grigore", "Beiträge": {"Daten": [{"link": "https: \/\/www.facebook.com \// BananaGiveaway \/phot ...... – Gireada

+0

Ihre Antwort ** Variabila2 ** ist nicht Jsonarray. Dies ist ein JSONObject. –

Antwort

0

Ich fand die Antwort. Ich gebe nicht alle Erlaubnis auf Login-Taste.

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("user_posts", "public_profile", "email")); 

Vielen Dank für Ihre Hilfe. Deshalb bekomme ich nur wenige Daten.

{"id":"2016399981939546","name":"Grigore Saveluc Rodica"} 
Verwandte Themen