Android 这个错误可能是什么?[修订的域名]
异常java.lang.RuntimeException:无法启动活动 ComponentInfo{app.app/app.app.activity.notificacoaactivity}: java.lang.NullPointerException:尝试从字段读取 空值上的“java.lang.String app.app\u[redact\u DOMAIN\u NAME]” 对象引用 由java.lang.NullPointerException引起:尝试从字段读取 空值上的“java.lang.String app.app\u[redact\u DOMAIN\u NAME]” 对象引用 app.app.persistence.WAPIService.getNotificacoes (WAPIService.java:230) app.app.activity.notificacoaactivity.onStart (notificacoaactivity.java:65) 我无法理解这个错误是什么,下面是错误引用的类: 通知:Android 这个错误可能是什么?[修订的域名],android,Android,异常java.lang.RuntimeException:无法启动活动 ComponentInfo{app.app/app.app.activity.notificacoaactivity}: java.lang.NullPointerException:尝试从字段读取 空值上的“java.lang.String app.app\u[redact\u DOMAIN\u NAME]” 对象引用 由java.lang.NullPointerException引起:尝试从字段读取 空值上的“java.
@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());
}
});
}
@覆盖
public void onStart(){
super.onStart();
显示进度(true,“等待”,false);
WAPIService.getInstance().getNotificacoes(new FutureCallback()){
@凌驾
成功时公开作废(列表结果){
//setAdapter(新的notificacoadapter(getContext(),result));
如果(!result.isEmpty()){
List lidas=new ArrayList();
List naoLidas=new ArrayList();
用于(通知:结果){
如果((n.Status==10&&n.Tipo!=5&&n.Tipo!=10&&n.Tipo!=15&&n.Tipo!=20)){//Teste-com第20段
添加(n);
}否则{
添加(n);
}
}
如果(getFragmentRefreshListenerLidas()!=null){
getFragmentRefreshListenerLidas().onRefresh(新的NotificaLoadApter(getContext(),lidas));
}
如果(getFragmentRefreshListenerNaoLidas()!=null){
getFragmentRefreshListenerNaoLidas();
}
}
showProgress(假“,”真);
}
@凌驾
失效时的公共无效(可丢弃的t){
showProgress(假“,”真);
Toast(“Erro-ao buscar notificações”);
Log.e(标签,“Erro ao buscar notificações:+t.getMessage()”;
}
});
}
Wapi:
此类将转到服务器,我将查找通知:
公共作废获取通知(最终未来回调>回调){
JsonObject usuarioId=新的JsonObject();
addProperty(“id_usuario”,((ApplicationUtils)context.getApplicationContext()).getUsuario().id)
wapiConn.invokeApi(“通知”、“获取”、usuarioId、JsonObject.class、new FutureCallback()){
@凌驾
成功时公共无效(JsonObject结果){
试一试{
List notificacoes=JsonEntityParser.parseResults(result.getAsJsonArray(“通知”),
wapiConn.getMobileServiceClient().getGsonBuilder().create(),Notificacao.class);
//Chamando回拨至tela de login/registro
callback.onSuccess(通知);
}捕获(例外e){
回调失败(e);
}
}
@凌驾
失效时的公共无效(可丢弃的t){
回调失败(t);
}
});
}对上下文.getApplicationContext())的调用似乎是无效的。getUsario()在尝试获取用户Id时返回null,并且您会得到NPE。可能用户没有登录,所以这就是为什么ApplicationContext中没有相应的对象。对上下文.getApplicationContext())的调用似乎是无效的。getUsario()返回null,您在尝试获取用户Id时会得到NPE。可能用户未登录,因此ApplicationContext中没有相应的对象
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);
}
});