使用php和android连接mysql时出现NullPointerException

使用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

我试图通过一些使用php连接mysql的教程从URL获取数据

然而,当我运行代码时,我得到一个nullpointerexception

数据库_demo.java

以下是要在url上获取的数据


是什么问题导致了这种情况?我还想知道如何将数据传递到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");