2017-09-28 10 views
1

例外java.lang.RuntimeException: java.lang.NullPointerExceptionが:フィールド から読み取りを試行のJava活性 ComponentInfo {app.app/app.app.activity.NotificacaoActivity}を開始できません。 lang.String app.app_ [REDACTED_DOMAIN_NAME]」NULL オブジェクト参照java.lang.NullPointerExceptionが起因するこのエラーは何か? 【REDACTED_DOMAIN_NAME]

で:フィールド から読み取るための試み 'ヌルにjava.lang.Stringでapp.app_ [REDACTED_DOMAIN_NAME]' オブジェクトリファレンス app.app.persistence.WAPIService.getNotificacoes (WAPIService.java:230) app.app.activity.NotificacaoActivity.onStart (NotificacaoActivity.java:65)

私はこのエラーが何であるかを理解することができませんでし

は、以下の、それはクラスを次のようにエラーの引用: Notificacao:

@Override 
    public void onStart() { 
     super.onStart(); 
     showProgress(true, "wait", false); 

     WAPIService.getInstance().getNotificacoes(new FutureCallback<List<Notificacao>>() { 
      @Override 
      public void onSuccess(List<Notificacao> result) { 
       //listView.setAdapter(new NotificacaoAdapter(getContext(), result)); 
       if(!result.isEmpty()) { 
        List<Notificacao> lidas = new ArrayList<Notificacao>(); 
        List<Notificacao> naoLidas = new ArrayList<Notificacao>(); 

        for(Notificacao n : result){ 
         if((n.Status == 10 && n.Tipo != 5 && n.Tipo != 10 && n.Tipo != 15 && n.Tipo != 20)){//Teste com 20 para dividir 
          naoLidas.add(n); 
         } else { 
          lidas.add(n); 
         } 
        } 

        if (getFragmentRefreshListenerLidas() != null) { 
         getFragmentRefreshListenerLidas().onRefresh(new NotificacaoAdapter(getContext(), lidas)); 
        } 

        if (getFragmentRefreshListenerNaoLidas() != null) { 
         getFragmentRefreshListenerNaoLidas().onRefresh(new NotificacaoAdapter(getContext(), naoLidas)); 
        } 
       } 
       showProgress(false, "", true); 

      } 

      @Override 
      public void onFailure(Throwable t) { 
       showProgress(false, "", true); 
       Toast("Erro ao buscar notificações"); 
       Log.e(TAG, "Erro ao buscar notificações: " + t.getMessage()); 
      } 
     }); 
    } 

WAPI: このクラスは、サーバーに行くと、私は通知を探します。

ます。public void getNotificacoes(最終FutureCallback>コールバック){ JsonObject usuari oId =新しいJsonObject(); usuarioId.addProperty( "id_usuario"、((ApplicationUtils)context.getApplicationContext())。getUsuario()。Id);

wapiConn.invokeApi("notification", "get", usuarioId, JsonObject.class, new FutureCallback<JsonObject>() { 
    @Override 
    public void onSuccess(JsonObject result) { 
     try { 
      List<Notificacao> notificacoes = JsonEntityParser.parseResults(result.getAsJsonArray("notifications"), 
        wapiConn.getMobileServiceClient().getGsonBuilder().create(), Notificacao.class); 
      //Chamando CallBack da tela de login/registro 
      callback.onSuccess(notificacoes); 
     } catch (Exception e) { 
      callback.onFailure(e); 
     } 
    } 

    @Override 
    public void onFailure(Throwable t) { 
     callback.onFailure(t); 
    } 
}); 

}

答えて

1

それはnullを返し、ユーザーのIDを取得しようとしたときにNPEを取得context.getApplicationContext())。getUsuario()への呼び出しようです。ユーザーがログインしていないと、ApplicationContextに対応するオブジェクトが存在しないことが考えられます。

関連する問題