vendredi 2 mars 2018

E/JSON Parser: Error parsing data org.json.JSONException: Value

  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