I have design an app for agricultors on cordoba colombia, i sent the data to a web service, but y have this error. Thanks for your help, this is my tesis of degree, please send me a email to cahernandezg1@gmail.com
thanks every body. for your help on this problem i have so much days and i can´t resolve it.
I have design an app for agricultors on cordoba colombia, i sent the data to a web service, but y have this error. Thanks for your help, this is my tesis of degree, please send me a email to cahernandezg1@gmail.com thanks every body. for your help on this problem i have so much days and i can´t resolve it.
This isLog Cat:
E/JSON Parser: Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #5
Process: co.com.ranacor.www.ranacor, PID: 28523
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:325)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference
at co.com.ranacor.www.ranacor.Publicaofertaimg$CreaOferta.doInBackground(Publicaofertaimg.java:131)
at co.com.ranacor.www.ranacor.Publicaofertaimg$CreaOferta.doInBackground(Publicaofertaimg.java:84)
at android.os.AsyncTask$2.call(AsyncTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
E/WindowManager: android.view.WindowLeaked: Activity co.com.ranacor.www.ranacor.Publicaofertaimg has leaked window DecorView@2e35dbc[] that was originally added here
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:425)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
at android.app.Dialog.show(Dialog.java:329)
at co.com.ranacor.www.ranacor.Publicaofertaimg$CreaOferta.onPreExecute(Publicaofertaimg.java:93)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:620)
at android.os.AsyncTask.execute(AsyncTask.java:567)
at co.com.ranacor.www.ranacor.Publicaofertaimg.onClick(Publicaofertaimg.java:80)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
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:6243)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
This is the main activity
public class Publicaofertaimg extends AppCompatActivity implements OnClickListener {
//objetos que se van a usar en el activity
public EditText describe, dias, precio;
public Spinner titu;
public Button btpub;
public TextView direc, nitu;
public ImageView ft1, ft2;
public ProgressDialog pDialog2;//barra de progreso para registro
// clase JSON parser para enviar el json
JSONParser jsonParser = new JSONParser();
//url del web service para registro de la oferta
private static final String REGISTER_URL = "http://agrocorb.heliohost.org/test/serv/rgoferta.php";
private static final String RUTAFOTO = "http://agrocorb.heliohost.org/test/imgoferta/";
//ids
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_publicaofertaimg);
//asignacion de variables para capturar la ubicacion
//variables para tomar los datos a pasar en el hilo
titu = findViewById(R.id.spcategoria);//titulo de la oferta
describe = findViewById(R.id.eDescribe);//descripcion oferta
precio = findViewById(R.id.edprecio);//precio oferta
dias = findViewById(R.id.textDias);//fecha oferta
ft1 = findViewById(R.id.foto1);//ruta imagen1
ft2 = findViewById(R.id.foto2);//ruta imagen2
direc = findViewById(R.id.textdire);//direccion para buscar idubica
nitu= findViewById(R.id.textnit);//nit productor
btpub = findViewById(R.id.btpublica);
btpub.setOnClickListener(this);
//cargamos los items de las categorias de oferta
Spinner spinner_categoria = findViewById(R.id.spcategoria);
ArrayAdapter spinner_adapter = ArrayAdapter.createFromResource( this, R.array.categoria , android.R.layout.simple_spinner_item);
spinner_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_categoria.setAdapter(spinner_adapter);
}//on create
@Override
public void onClick(View v) {//verificamos si hay conexion a internet
//invocamos al metodo verificarcinexion a internet
if (!verificaConexion(this)) {
Toast.makeText(getBaseContext(),
"Sin conexión a Internet. Encienda los datos o WI-FI ... ", Toast.LENGTH_SHORT)
.show();
this.getCurrentFocus();
return;
}//if verificaconexion
new CreaOferta().execute();
}//onclick
class CreaOferta extends AsyncTask<String, String, String> {//hilo para guardar oferta
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog2 = new ProgressDialog(Publicaofertaimg.this);
pDialog2.setMessage("Publicando su Oferta...");
pDialog2.setIndeterminate(false);
pDialog2.setCancelable(true);
pDialog2.show();
}//on preexecute
@Override
protected String doInBackground(String... args) {
// defino las variables para json
int success;//variable que determina exito o no del json
String tituof =titu.getSelectedItem().toString();//titulo categ oferta
String descrof = describe.getText().toString();//descripcion oferta
String preci = precio.getText().toString();//precio oferta
String ndias = dias.getText().toString();//dias fin oferta
String foto1 = ft1.getContentDescription().toString();//ruta foto1
String foto2 = ft2.getContentDescription().toString();//ruta foto1
String estad; //estado oferta
String idu = nitu.getText().toString();//nitusuario
String direcc = direc.getText().toString();//direccion para obtener idubica en serv
estad= "ACTIVA";//estado oferta
try {
// construimos los Parametros para el registro edit en web/variable doin backgroun
List params = new ArrayList();
params.add(new BasicNameValuePair("titulof", tituof));
params.add(new BasicNameValuePair("deofer", descrof));
params.add(new BasicNameValuePair("preciof", preci));
params.add(new BasicNameValuePair("diasf", ndias));//aqui error en fecha
params.add(new BasicNameValuePair("estadof", estad));
params.add(new BasicNameValuePair("im1", foto1));
params.add(new BasicNameValuePair("im2", foto2));
params.add(new BasicNameValuePair("direof", direcc));
params.add(new BasicNameValuePair("cateof", tituof));
params.add(new BasicNameValuePair("idusof", idu));
Log.d("request!", "starting");
//enviamos datos del user al script haciendo la peticion http
JSONObject json = jsonParser.makeHttpRequest(
REGISTER_URL, "POST", params);
// full json response
Log.d("Registering attempt", json.toString());
// json success element
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Oferta publicada ok", json.toString());
finish();
return json.getString(TAG_MESSAGE);
}else{
Log.d("Falla al Registrar !", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);
}//if success
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}//hilo do in background
protected void onPostExecute(String file_url) {
pDialog2.dismiss();
if (file_url != null){
Toast.makeText(Publicaofertaimg.this, file_url, Toast.LENGTH_LONG).show();
}
}//on postexecute
}//Create oferta Asyntask
public void cerrado(View view){//cerrar la activity y volver al login
finish();
}//cerrar la activity oferta
}//Fin class Publicaofertaimg
thanks for your help
Aucun commentaire:
Enregistrer un commentaire