Не мога да публикувам данни в базата данни Mysql с помощта на библиотеката Volley

Ето кода за залпове, който хвърля следното изключение „Опит за извикване на виртуален метод „int java.lang.String.hashCode()“.

String url = "http://192.168.60.02/TransportTracking/main.php";

StringRequest postRequest = new StringRequest(Request.Method.POST, url,
        new Response.Listener<String>()
        {
            @Override
            public void onResponse(String response) {
                // response
                Log.d("Response", response);
            }
        },
        new Response.ErrorListener()
        {
            @Override
            public void onErrorResponse(VolleyError error) {
                // error
                Log.d("Error.Response", error.getMessage());
            }
        }
) {
    @Override
    protected Map<String, String> getParams()
    {
        Map<String, String>  params = new HashMap<String, String>();
        params.put("long","100");
        params.put("lat", "200");
        params.put("recordtime","acbcbcb");

        return params;
    }
};
    AppController.getInstance().addToRequestQueue(postRequest, "tag_json_obj");

и ето дневника на грешките:

07-06 08:07:54.315 2837-2837/com.example.jawadtariq.uogtransporttrackingsystem E/Android Време на изпълнение: ФАТАЛНО ИЗКЛЮЧЕНИЕ: основен процес: com.example.jawadtariq.uogtransporttrackingsystem, PID: 2837

java.lang.NullPointerException: Опит за извикване на виртуален метод 'int java.lang.String.hashCode()' върху препратка към нулев обект на com.android.volley.Request.(Request.java:136) на com.android.volley .toolbox.StringRequest.(StringRequest.java:43)

                                                                                                 at com.example.jawadtariq.uogtransporttrackingsystem.LocationService$3.<init>(LocationService.java:98)
                                                                                                 at com.example.jawadtariq.uogtransporttrackingsystem.LocationService.onConnected(LocationService.java:81)
                                                                                                 at com.google.android.gms.common.internal.zzac.zzn(Unknown Source)
                                                                                                 at com.google.android.gms.internal.zzbco.zzm(Unknown Source)
                                                                                                 at com.google.android.gms.internal.zzbcc.zzpY(Unknown Source)
                                                                                                 at com.google.android.gms.internal.zzbcc.onConnected(Unknown Source)
                                                                                                 at com.google.android.gms.internal.zzbcw.onConnected(Unknown Source)
                                                                                                 at com.google.android.gms.internal.zzbbh.onConnected(Unknown Source)
                                                                                                 at com.google.android.gms.common.internal.zzaa.onConnected(Unknown Source)
                                                                                                 at com.google.android.gms.common.internal.zzn.zzrj(Unknown Source)
                                                                                                 at com.google.android.gms.common.internal.zze.zzs(Unknown Source)
                                                                                                 at com.google.android.gms.common.internal.zzi.zzrk(Unknown Source)
                                                                                                 at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source)
                                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                                 at android.os.Looper.loop(Looper.java:135)
                                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5221)
                                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                                 at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Едно последно нещо, което трябва да спомена е, че търсих в Google това изключение, преди да публикувам тук, и повечето от проблемните въпроси имат неправилен URL адрес. Но в моя случай URL адресът е правилен.


person jawad    schedule 06.07.2017    source източник
comment
Може би това е, което търсите.   -  person Shashanth    schedule 06.07.2017


Отговори (2)


Декларирайте екземпляр на volley request-queue и след това добавете stringRequest в него. като

RequestQueue requestQueue =  
             Volley.newRequestQueue(getApplicationContext());
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
        new Response.Listener<String>()
        {
            @Override
            public void onResponse(String response) {
                // response
                Log.d("Response", response);
        }
        },
        new Response.ErrorListener()
        {
            @Override
            public void onErrorResponse(VolleyError error) {
                // error
                Log.d("Error.Response", error.getMessage());
            }
        }
    ){
    @Override
    protected Map<String, String> getParams()
    {
        Map<String, String>  params = new HashMap<String, String>();
        params.put("long","100");
        params.put("lat", "200");
        params.put("recordtime","acbcbcb");
        return params;
    }
};

requestQueue.add(postRequest);

Това е работещ код за мен.

person Dhiral Kaniya    schedule 06.07.2017
comment
Но аз използвам volley singleton клас и моят код е компилиран, но хвърля изключение, както е споменато по-горе - person jawad; 06.07.2017
comment
Ако сте хоствали URL адреса си локално, опитайте го с 127.0.0.1 за Android устройства и 10.0.2.2 за AVD устройства. Уверете се, че вашият компютър и устройства са в една и съща връзка. @jawad.. - person Dhiral Kaniya; 06.07.2017

можете също да научите повече за залпа тук http://www.androidhive.info/2014/05/android-working-with-volley-library-1/

person PCGALI ANDROID    schedule 06.07.2017
comment
Не публикувайте отговори само с връзки. Връзките към външни ресурси се насърчават, но моля, добавете контекст около връзката, така че другите ви потребители да имат някаква представа какво представлява и защо е там. Винаги цитирайте най-подходящата част от важна връзка, в случай че целевият сайт е недостъпен или е офлайн за постоянно. - person Shashanth; 06.07.2017