Android / Volley возвращает исключение нулевого указателя Java - PullRequest
0 голосов
/ 02 марта 2019

Я писал код с Volley для этого проекта, и все остальные классы / фрагменты работали.По некоторым причинам этого просто нет.Я провел некоторый поиск и пришел к выводу, что где-то в моих параметрах есть значение NULL, но я отслеживал каждый ввод с помощью журнала и даже провел небольшую отладку.

Я не знаюв чем проблема здесь.Мои другие фрагменты работают нормально, но этот отказывается отправлять код для сценария PHP на моем сервере.Я проверил, что бэкэнд работает нормально с Почтальоном, и я получаю возвращение успеха, но с Volley он не работает.

public void send()
{
    // assign values from our text inputs to variables
    ReturnedUseByDateEntered = this.useByDate.getText().toString().trim();
    batchCodeEntered = this.batchCode.getText().toString().trim();
    returnedDate = this.finalDate.getText().toString().trim();
    signatureEntered = SessionHandler.getInstance(getActivity().getApplicationContext()).getUserName();

    StringRequest stringRequest = new StringRequest(StringRequest.Method.POST, URL_INSERT, new Response.Listener<String>()
    {
        @Override
        public void onResponse(String response)
        {
            Log.d("DELIVERY",response);
            JSONObject jsonObject = null; // declare JSON object to hold the status
            try
            {
                jsonObject = new JSONObject(response); // get the response and store it into the JSONobject
                // Get the response from PHP script on server,
                // If response of the success vairable is equal to 1
                // Store the return from the PHP scripts of the error tag, if its equal to false (means no error)
                String result = jsonObject.getString("success");
                Log.e("Response", response.toString());

                if(result.equals("1"))
                {
                    Toast.makeText(getActivity(), jsonObject.getString("message"), Toast.LENGTH_SHORT).show();

                }
                else
                {
                    Toast.makeText(getActivity(), jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
                }

            } catch (JSONException e)
            {
                e.printStackTrace();
                Toast.makeText(getActivity(), "Authentication Error " + e.toString(), Toast.LENGTH_LONG).show();

            }
        }
    },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error)
                {
                    Toast.makeText(getActivity(), "Authentication Failed " + error.toString(), Toast.LENGTH_LONG).show();
                }
            })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError
        {
            Map<String, String> params = new HashMap<>();
            params.put("date", returnedDate);
            params.put("food_item", foodItemEntered);
            params.put("batch_code", batchCodeEntered);
            params.put("supplied_by", supplierEntered);
            params.put("use_by_date", ReturnedUseByDateEntered);
            params.put("temp", tempEntered);
            params.put("rejected", String.valueOf(rejected));
            params.put("comment", commentEntered);
            params.put("signature", signatureEntered);

            return params;
        }
    };

    // This line uses the singleton method ( Session Handler Class )
    // It is said to use a singleton when an application makes constant use of a network
    MySingleton.getInstance(getActivity()).addToRequestQueue(stringRequest);
}

Это мой метод отправки, который вызывается при срабатывании кнопки. ПРИМЕЧАНИЕ: остальные значения присваиваются вне этого метода.Но я протестировал его с другими проектами, и он работает

Attached a photo also to the error log

...