I'm Trying to connect MYSQL with android application using php and JSON files, the problem I'm facing in the moment is that JSONParser Class always return null, and I don't know why since I can view my JSON file and it's valid
and I'm also I have two exceptions in my code the first one is:
12-08 09:17:43.486 29666-29666/alharbi.atheer.gym_managment_system E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
12-08 09:17:43.498 29666-29666/alharbi.astrong texttheer.gym_managment_system E/OpenGLRenderer: MAX_TEXTURE_SIZE: 16384
12-08 09:17:43.518 29666-29666/alharbi.atheer.gym_managment_system E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
12-08 09:17:43.522 29666-29666/alharbi.atheer.gym_managment_system E/OpenGLRenderer: MAX_TEXTURE_SIZE: 16384
The Second one is :
12-08 09:17:46.526 29666-29740/alharbi.atheer.gym_managment_system E/Buffer Error: Error converting result java.lang.NullPointerException: lock == null
12-08 09:17:46.526 29666-29740/alharbi.atheer.gym_managment_system E/JSON Parser: Error parsing data org.json.JSONException: End of input at character 0 of
this is the class that contain the problem
public class ViewInfo extends AppCompatActivity {
JSONParser jsonParser;
ProgressDialog progressDialog;
int value;
String[] names,emails,levels,ids, weights,hieghts,genders,bds,addresses,ages,phones;
ListView listView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_info);
jsonParser=new JSONParser();
listView2=(ListView)findViewById(R.id.listView2);
new DisplayViewInfo().execute();
}
class DisplayViewInfo extends AsyncTask<String,String,String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog=new ProgressDialog(ViewInfo.this);
progressDialog.setTitle("Wait...");
progressDialog.show();
}
@Override
protected String doInBackground(String... strings) {
List<NameValuePair> list= new ArrayList<NameValuePair>();
// HashMap<String,String> list = new HashMap<>();
// jsonObject=jsonParser.makeHttpRequest("http://192.168.56.1/myapp/ViewInfo.php","POST",list);
JSONObject jsonObject=jsonParser.makeHttpRequest("http://192.168.56.1/myapp/ViewInfo.php", "POST", list);
try{
if(jsonObject!=null && !jsonObject.isNull("value")){
value=jsonObject.getInt("value");
JSONArray jsonArray=jsonObject.getJSONArray("Customers");
names=new String[jsonArray.length()];
emails=new String[jsonArray.length()];
phones=new String[jsonArray.length()];
ids=new String[jsonArray.length()];
weights=new String[jsonArray.length()];
hieghts=new String[jsonArray.length()];
genders=new String[jsonArray.length()];
levels=new String[jsonArray.length()];
ages=new String[jsonArray.length()];
addresses=new String[jsonArray.length()];
bds=new String[jsonArray.length()];
for(int i=0;i<jsonArray.length();i++){
JSONObject objcet=jsonArray.getJSONObject(i);
ids[i]=objcet.getString("Customer_ID");
names[i]=objcet.getString("Name");
emails[i]=objcet.getString("Email");
phones[i]=objcet.getString("Phone_number");
weights[i]=objcet.getString("Weight");
hieghts[i]=objcet.getString("Height");
genders[i]=objcet.getString("Gender");
levels[i]=objcet.getString("Level");
ages[i]=objcet.getString("age");
addresses[i]=objcet.getString("address");
bds[i]=objcet.getString("Date_of_birth");
}
}else{
value=0;
}
}catch (Exception e){
Log.d("ERROR", e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(value==1){
Toast.makeText(getApplicationContext(), "Done...", Toast.LENGTH_LONG).show();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(ViewInfo.this,android.R.layout.simple_list_item_1,android.R.id.text1,names);
listView2.setAdapter(adapter);
}else if(value==0)
Toast.makeText(getApplicationContext(),"Error...",Toast.LENGTH_LONG).show();
else Toast.makeText(getApplicationContext(),"OUT...",Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
}
}
This is My JSON Parser :
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
// function get json from url
// by making HTTP POST or GET mehtod
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
// Making HTTP request
try {
// check for request method
if(method.equals("POST")){
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8"));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}else if(method.equals("GET")){
// request method is GET
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
} catch (UnsupportedEncodingException e) {
//e.printStackTrace();
} catch (ClientProtocolException e) {
// e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "
");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
}
Can anyone please help me? I've been straggling for days because of these errors