Ljava.lang.StackTraceeElement调试android应用程序
我试图调试我的应用程序,看看它在哪里停止运行,但我对下面的日志“Ljava.lang.StackTraceeElement;@42088f90”感到困惑,我不知道它是什么意思,也不知道它来自哪里Ljava.lang.StackTraceeElement调试android应用程序,java,android,android-volley,Java,Android,Android Volley,我试图调试我的应用程序,看看它在哪里停止运行,但我对下面的日志“Ljava.lang.StackTraceeElement;@42088f90”感到困惑,我不知道它是什么意思,也不知道它来自哪里 07-01 13:55:30.957 11534-11534/com.rep I/RM﹕ construct 07-01 13:55:30.957 11534-11534/com.rep I/RM﹕ onPreExecute 07-01 13:55:30.961 11534-12159/com.r
07-01 13:55:30.957 11534-11534/com.rep I/RM﹕ construct
07-01 13:55:30.957 11534-11534/com.rep I/RM﹕ onPreExecute
07-01 13:55:30.961 11534-12159/com.rep I/RM﹕ doInBackground
07-01 13:55:30.961 11534-12159/com.rep I/RM﹕ URL DE CONSULTA: http://192.168.1.1/rep/api/clientes
01 13:55:30.962 11534-12159/com.rep I/RM﹕ [Ljava.lang.StackTraceElement;@42088f90
代码如下:
package com.rep.webservice.rest;
import android.content.Context;
import android.util.Log;
import com.rep.model.ClienteModel;
import com.rep.webservice.Servidor;
import com.rep.webservice.volley.AuthFailureError;
import com.rep.webservice.volley.Request;
import com.rep.webservice.volley.RequestQueue;
import com.rep.webservice.volley.Response;
import com.rep.webservice.volley.VolleyError;
import com.rep.webservice.volley.toolbox.JsonObjectRequest;
import com.rep.webservice.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static java.lang.String.valueOf;
public class ClientesRest extends Servidor {
private String recursoRest = "clientes";
private List arrayClientes;
private RequestQueue mRequestQueue;
private Context context;
public ClientesRest(Context ctx) {
this.context = ctx;
}
public final List getClientes() {
String url = this.URL_WS + recursoRest;
Log.i("RM", "URL DE CONSULTA: " + url);
mRequestQueue = Volley.newRequestQueue(this.context);
JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
parseJSON(response);
Log.i("RM", "resposta da api: " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("RM", error.getMessage());
}
}
) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("X-TOKEN", "99KI9Gj68CgCf70deM22Ka64chef2Caaa2J0G9JkD0bDAcbFfd19MfacGf3FFm8CM1hG0eDiIk8");
return headers;
}
};
mRequestQueue.add(mJsonObjectRequest);
return this.arrayClientes;
}
private void parseJSON(JSONObject json) {
try {
Log.i("RM", "executou o parseJSON");
/* array para armazenar os clientes */
this.arrayClientes = new ArrayList<ClienteModel>();
/* pega o array "dados" que vem na resposta da consulta ao rest */
JSONArray dados = json.getJSONArray("dados");
/* percorre o array */
for (int i = 0; i < dados.length(); i++) {
/* pega a posição de cada linha no array */
JSONObject item = dados.getJSONObject(i);
/* cria um objeto do tipo ClienteModel */
ClienteModel mClienteModel = new ClienteModel();
/* cadastra os dados necessários no objeto mClienteModel */
mClienteModel.set_idrm(Integer.parseInt(item.optString("id")));
mClienteModel.set_nome(item.optString("nome"));
mClienteModel.set_tipo(item.getString("tipo"));
mClienteModel.set_endereco(item.optString("endereco"));
mClienteModel.set_numero(item.optString("numero"));
mClienteModel.set_complemento(item.optString("complemento"));
mClienteModel.set_cep(item.optString("cep"));
mClienteModel.set_bairro(item.optString("bairro"));
mClienteModel.set_cidade(item.optString("cidade"));
mClienteModel.set_estado(item.optString("estado"));
mClienteModel.set_informacao_adicional("informacao_adicional");
/* adicionar o objeto mClienteModel no array de Clientes "arrayClientes" */
this.arrayClientes.add(mClienteModel);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.rep.webservice.rest;
导入android.content.Context;
导入android.util.Log;
导入com.rep.model.ClienteModel;
导入com.rep.webservice.Servidor;
导入com.rep.webservice.volley.AuthFailureError;
导入com.rep.webservice.volley.Request;
导入com.rep.webservice.volley.RequestQueue;
导入com.rep.webservice.volley.Response;
导入com.rep.webservice.volley.VolleyError;
导入com.rep.webservice.volley.toolbox.JsonObjectRequest;
导入com.rep.webservice.volley.toolbox.volley;
导入org.json.JSONArray;
导入org.json.JSONObject;
导入java.io.PrintWriter;
导入java.io.StringWriter;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入静态java.lang.String.valueOf;
公共类客户列表扩展了Servidor{
私有字符串recursoRest=“clientes”;
私有列表ArrayClient;
私有请求队列mRequestQueue;
私人语境;
公共客户列表(上下文ctx){
this.context=ctx;
}
公共最终列表GetClients(){
字符串url=this.url\u WS+recursoRest;
Log.i(“RM”,“协商URL:+URL”);
mRequestQueue=Volley.newRequestQueue(this.context);
JsonObjectRequest mJsonObjectRequest=新JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
parseJSON(响应);
Log.i(“RM”,“resposta da api:+response.toString());
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.i(“RM”,error.getMessage());
}
}
) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
头.put(“X-TOKEN”、“99KI9Gj68CgCf70deM22Ka64chef2Caaa2J0G9JkD0bDAcbFfd19MfacGf3FFm8CM1hG0eDiIk8”);
返回标题;
}
};
mRequestQueue.add(mJsonObjectRequest);
返回此.arrayClients;
}
私有void parseJSON(JSONObject json){
试一试{
Log.i(“RM”、“executou o parseJSON”);
/*armazenar os客户阵列*/
this.arrayClients=新的ArrayList();
/*pega o阵列“护墙板”可用于解决领事馆休息问题*/
JSONArray dados=json.getJSONArray(“dados”);
/*percorre o阵列*/
对于(int i=0;i
它是StackTraceeElement
类的默认.toString()
您应该使用它的方法来打印stacktrace,或者更好地使用用于在logcat中打印stacktrace的Log
参数
Log.i("RM", "error", error);
尝试打印“错误”的stackTrace,错误。printStackTrace()。考虑到volleyerror扩展了exceptionthank you,现在com.rep.webservice.volley.toolbox.volley.newRequestQueue(volley.java:45)上的日志显示了-java.lang.NullPointerException