使用php和android连接mysql时出现NullPointerException
我试图通过一些使用php连接mysql的教程从URL获取数据 然而,当我运行代码时,我得到一个nullpointerexception 数据库_demo.java 以下是要在url上获取的数据使用php和android连接mysql时出现NullPointerException,php,android,mysql,json,nullpointerexception,Php,Android,Mysql,Json,Nullpointerexception,我试图通过一些使用php连接mysql的教程从URL获取数据 然而,当我运行代码时,我得到一个nullpointerexception 数据库_demo.java 以下是要在url上获取的数据 是什么问题导致了这种情况?我还想知道如何将数据传递到url,而不仅仅是从url获取数据。这里是Android新手。谢谢 看起来您正试图在主线程上尝试网络操作。看看这篇关于如何处理这一问题的帖子: 阅读 编辑: 出现JSON错误的原因是,您正在捕获第一个异常:HERE try{ //htt
是什么问题导致了这种情况?我还想知道如何将数据传递到url,而不仅仅是从url获取数据。这里是Android新手。谢谢 看起来您正试图在主线程上尝试网络操作。看看这篇关于如何处理这一问题的帖子: 阅读 编辑: 出现JSON错误的原因是,您正在捕获第一个异常:HERE
try{
//http post
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://uragon-dev.com/synergy/webservices.php?action=displayAll");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
}
因此,这里:
JSONArray jArray = new JSONArray(result);
结果将始终为空。这是你需要解决的第一个问题。您无法从主线程访问网络
要查看错误消息,请添加以下行:e.printStackTrace;它将在您的logcat输出中打印一个android.os.NetworkOnMainThreadException。您说过错误在JSONArray jArray=new JSONArrayresult;上;。如果是这种情况,您能试着检查结果的值吗?可能使用Log将其显示在Logcat上 如果错误为NetworkOnMainThread,则需要检查@user2045570的答案 希望这有帮助,祝你好运
里德你有两个问题。您试图读取的JSON不是作为对象的数组。所以代码应该是
JSONObject result = new JSONObject(result);
JSONArray users = result.getJSONArray("users");
并且,请不要在主线程上打开网络连接 我在org.json.JSONTokener.nextCleanInternalJSONTokener.java:116 org.json.JSONTokener.nextValueJSONTokener.java:94 org.json.JSONArray.JSONArray.java:87 org.json.JSONArray.java:103 json部分错了吗?@MiguelRivera这正是我说的。请阅读这里的答案:所以我要创建一个新的方法,就像链接中给出的方法一样?主线程上的网络肯定是一个问题,但在Android 3.0或API级别11上添加了一个例外,因此,如果您在较旧的Android版本上运行应用程序,则不会出现networkonMainThread错误。我是一名新手,因此非常感谢您的帮助。我按照您的回答,在logcat上收到了这些消息。logcat指向这个错误HttpResponse response=httpclient.executehtppost`
try{
//http post
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://uragon-dev.com/synergy/webservices.php?action=displayAll");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
}
JSONArray jArray = new JSONArray(result);
JSONObject result = new JSONObject(result);
JSONArray users = result.getJSONArray("users");