>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Curso Chat no Android Studio Aula 27 - Importando Contatos


Boa noite,

Estou com problema na parte de recuperar os contatos no curso de Chat, executando no modo Debug recebo o seguinte erro ao fazer login:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.vinicius.chat, PID: 17081
java.lang.NullPointerException: Attempt to invoke virtual method 'int com.google.gson.JsonArray.size()' on a null object reference
at com.example.vinicius.chat.MainActivity$3.onCompleted(MainActivity.java:118)
at com.example.vinicius.chat.MainActivity$3.onCompleted(MainActivity.java:115)
at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:124)
at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:244)
at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:60)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

O erro seria no result ali dentro do for, mas não sei o motivo, se puderem ajudar.


private void SaveContacts(final int id_user){
String URL = "http://cursoandroid.esy.es/recover_contacts.php";

Ion.with(getBaseContext()).load(URL)
.setBodyParameter("id_user", String.valueOf(id_user))
.asJsonArray().setCallback(new FutureCallback() {
@Override
public void onCompleted(Exception e, JsonArray result) {

for(int i=0; i JsonObject obj = result.get(i).getAsJsonObject();

SqliteHelper db = new SqliteHelper(getBaseContext());
db.save_contact(id_user, Integer.parseInt(obj.get("idusuario").getAsString()), obj.get("nome_usuario").getAsString(), obj.get("photo_usuario").getAsString());
}
}
});
}


Obrigado desde ja pela ajuda.



3 Respostas


Olá

verifique se esta retornando algum dado este seu loop.

Acessando sua URL notei que nada é retornado.




A URL esta retornado, mas realmente o JsonArray esta ficando nulo, não sei dizer o porque, veja um exemplo da busca:

http://cursoandroid.esy.es/recover_contacts.php?id_user=24

Que é o exemplo que utilizo e me traz o erro, ele retorna valores da consulta mas nao esta preenchendo a variavel result parece.




Dentro do loop (em onCompleted), tente exibir o que esta retornando de JsonArray result