2017-12-30 63 views
-1

私はFacebookのグラフを使ってFacebookのポストを取得するアプリを作った。私の携帯電話(CubotノートS & & UMIダイヤモンド)ですべてがうまく動作しますが、私のケースLG K10(2017)の他の電話でアプリを開こうとすると。私はエラー:java.lang.NullPointerException:と私はなぜ最初の携帯電話でこのアプリは非常にうまくいったので、わからない。ここでFacebook Graph 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) 

ライン

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

は私がvariabila2.getPosts()....にアクセスしようとすると、それは私に、このエラーを与えるたびです:

まず2つの電話は6.0アンドロイドとLGが7.0を持っている必要があり、可能性がありこれは問題ですか?

は、私はこの方法でGraphCallを作った:

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; 
     } 

    } 

これが私の最初の携帯電話上で動作しますが、この電話で(多分他の携帯電話にして)、それは動作しません。

この問題についてご意見がありましたら、お手伝いをしてください。

+0

ここにあなたのjsonレスポンスを追加します。 –

+0

{"id": "2016399981939546"、 "name": "Grigore Saveluc Rodica"}。今、なぜ私にヌルポイントを与えるのが見えますか?しかし、なぜ私はこの電話に投稿を与えません。 Cubot:{"id": "1813718138656862"、 "name": "Iulian Grigore"、 "posts":{"data":[{"link": "https:\/\/www.facebook.com \ BananaGiveaway \/phot ...... – Gireada

+0

あなたのレスポンス** variabila2 **はjsonarrayではありません。これはJSONObjectです –

答えて

0

回答が見つかりました。私はすべてのpermisionをログインボタンに入れません。

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

ご協力いただきありがとうございます。だからこそ私はわずかなデータしか得られない。

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