数组推送,期望参数1为数组但给定为null

时间:2013-06-08 00:20:22

标签: php android mysql web-services

您好我通过PHP Web服务使用Android和MySQL,但我的logcat中出现以下错误

06-08 07:04:37.939: I/Parsing(309): [    
06-08 07:04:37.939: I/Parsing(309): <b>Notice</b>:  Undefined variable: temp_result in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>46</b>    
06-08 07:04:37.939: I/Parsing(309):     
06-08 07:04:37.939: I/Parsing(309): <b>Warning</b>:  array_push() expects parameter 1 to be array, null given in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>57</b>    
06-08 07:04:37.939: I/Parsing(309):     
06-08 07:04:37.939: I/Parsing(309): <b>Warning</b>:  array_push() expects parameter 1 to be array, null given in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>57</b>    
06-08 07:04:37.939: I/Parsing(309): {"result":null,"code":1,"message":"Success"}
06-08 07:04:37.939: I/Parsing(309): ]
06-08 07:04:37.960: E/JSON Parser(309): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject    
06-08 07:04:37.960: E/JSON Parser(309): <b>Notice</b>:  Undefined variable: temp_result in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>46</b>    
06-08 07:04:37.960: E/JSON Parser(309):     
06-08 07:04:37.960: E/JSON Parser(309): <b>Warning</b>:  array_push() expects parameter 1 to be array, null given in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>57</b>    
06-08 07:04:37.960: E/JSON Parser(309):     
06-08 07:04:37.960: E/JSON Parser(309): <b>Warning</b>:  array_push() expects parameter 1 to be array, null given in <b>C:\xampp\htdocs\bpn_web_service\warkah.php</b> on line <b>57</b>    
06-08 07:04:37.960: E/JSON Parser(309): {"result":null,"code":1,"message":"Success"}
06-08 07:04:37.960: W/dalvikvm(309): threadid=8: thread exiting with uncaught exception (group=0x4001d800)
06-08 07:04:38.019: E/AndroidRuntime(309): FATAL EXCEPTION: AsyncTask #1
06-08 07:04:38.019: E/AndroidRuntime(309): java.lang.RuntimeException: An error occured while executing doInBackground()
06-08 07:04:38.019: E/AndroidRuntime(309):  at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.lang.Thread.run(Thread.java:1096)
06-08 07:04:38.019: E/AndroidRuntime(309): Caused by: java.lang.NullPointerException
06-08 07:04:38.019: E/AndroidRuntime(309):  at com.radit.bpnmobile.warkah$search_warkah.doInBackground(warkah.java:95)
06-08 07:04:38.019: E/AndroidRuntime(309):  at com.radit.bpnmobile.warkah$search_warkah.doInBackground(warkah.java:1)
06-08 07:04:38.019: E/AndroidRuntime(309):  at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-08 07:04:38.019: E/AndroidRuntime(309):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-08 07:04:38.019: E/AndroidRuntime(309):  ... 4 more
06-08 07:04:40.179: E/WindowManager(309): Activity com.radit.bpnmobile.warkah has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43e6ea40 that was originally added here
06-08 07:04:40.179: E/WindowManager(309): android.view.WindowLeaked: Activity com.radit.bpnmobile.warkah has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43e6ea40 that was originally added here
06-08 07:04:40.179: E/WindowManager(309):   at android.view.ViewRoot.<init>(ViewRoot.java:247)
06-08 07:04:40.179: E/WindowManager(309):   at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-08 07:04:40.179: E/WindowManager(309):   at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-08 07:04:40.179: E/WindowManager(309):   at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-08 07:04:40.179: E/WindowManager(309):   at android.app.Dialog.show(Dialog.java:241)
06-08 07:04:40.179: E/WindowManager(309):   at com.radit.bpnmobile.warkah$search_warkah.onPreExecute(warkah.java:78)
06-08 07:04:40.179: E/WindowManager(309):   at android.os.AsyncTask.execute(AsyncTask.java:391)
06-08 07:04:40.179: E/WindowManager(309):   at com.radit.bpnmobile.warkah$1.onClick(warkah.java:64)
06-08 07:04:40.179: E/WindowManager(309):   at android.view.View.performClick(View.java:2408)
06-08 07:04:40.179: E/WindowManager(309):   at android.view.View$PerformClick.run(View.java:8816)
06-08 07:04:40.179: E/WindowManager(309):   at android.os.Handler.handleCallback(Handler.java:587)
06-08 07:04:40.179: E/WindowManager(309):   at android.os.Handler.dispatchMessage(Handler.java:92)
06-08 07:04:40.179: E/WindowManager(309):   at android.os.Looper.loop(Looper.java:123)
06-08 07:04:40.179: E/WindowManager(309):   at android.app.ActivityThread.main(ActivityThread.java:4627)
06-08 07:04:40.179: E/WindowManager(309):   at java.lang.reflect.Method.invokeNative(Native Method)
06-08 07:04:40.179: E/WindowManager(309):   at java.lang.reflect.Method.invoke(Method.java:521)
06-08 07:04:40.179: E/WindowManager(309):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-08 07:04:40.179: E/WindowManager(309):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-08 07:04:40.179: E/WindowManager(309):   at dalvik.system.NativeStart.main(Native Method)

下面是第57行错误行的代码,其中的语句为array_push($response["result"], $temp_result)

if(mysql_num_rows($query) > 0)
        {
            $reponse["result"] = array();

            while($row = mysql_fetch_array($query))
            {
                $temp_result[] = array();
                $temp_result["no_warkah"] = $row["no_warkah"];
                $temp_result["tahun"] = $row["tahun"];
                $temp_result["desa"] = $row["desa"];
                $temp_result["kecamatan"] = $row["kecamatan"];
                $temp_result["rak"] = $row["rak"];
                $temp_result["blok"] = $row["blok"];
                array_push($response["result"], $temp_result);
            }
            $response["code"] = 1;
            $response["message"] = "Success";
            echo json_encode($response);
        }
        else
        {
            $response["code"] = 12;
            $response["message"] = "Query empty, nothing to select";
            echo json_encode($response);
        }

任何人都知道如何解决它?感谢。

1 个答案:

答案 0 :(得分:1)

你在初始化时忘记了响应