I've got an android application which communicates with a webserver using PHP and Volley. My app sends a Post request to a Listener.php file on my webserver and chooses different functions in a Functions.php. The problem is: some functions lead to a volley null error although the code is executed. Theres no error in apache erroglog and I can see the data change in my database. But I want to process a response in my app which is not possible when I get this error. The webserver is running on my raspberry pi now and I get this error all the time when calling specific functions, other functions are working as expected. When I test the same code on Windows its working fine (although these null errors are happening too from time to time at the same functions). I really hope theres someone to put me in the right direction, I have no idea how to proceed with that kind of problem..
Java/Volley Post
public static void importNewMedia(final Context context) {
final String TAG = "importMedia";
String tag_string_req = "admin_control";
StringRequest strReq = new StringRequest(com.android.volley.Request.Method.POST,
AppConfig.URL_SERVER, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response.toString());
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
Toast.makeText(context, "Database has been updated!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context,
"Database has not been updated!", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
Toast.makeText(context, "0"+
" Database has not been updated!", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Connection Error: " + error.getMessage());
}
}) {
protected Map<String, String> getParams() {
HashMap<String ,String> params=new HashMap<String, String>();
params.put("tag", "getNewMedia");
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
System.out.println(strReq + tag_string_req);
}
Listener.php
else if ($tag == 'getNewMedia') {
$db_functions->copyNewMediaToSongs($mysqli);
if ($test ) {
$response["error"] = FALSE;
echo json_encode($response);
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Server Error";
echo json_encode(array_values($response));
}
}
One of the Functions that causes null error
public function copyNewMediaToSongs($mysqli) {
shell_exec('sudo sh /var/www/html/musicbox/include/findmp3.sh');
return 1;
}
What Logcat shows me ...
08-09 04:16:01.420 2812-2979/com.ruecgames.sengproject.musicbox I/System.out: [ ] http://192.168.2.123/musicbox/include/Listener.php 0x85ca2597 NORMAL 18admin_control 08-09 04:16:09.008 2812-2812/com.ruecgames.sengproject.musicbox E/getConfig: Connection Error: null