【问题标题】:Android Java Null Pointer ExceptionAndroid Java 空指针异常
【发布时间】:2011-08-03 03:12:04
【问题描述】:

我正在尝试连接到远程服务器上的数据库。
我有以下代码,其中隐藏了私人详细信息:


public static void connectToServer () {
        Log.e(tag,"Inside connectToServer");
        String result = "";
        ArrayList toDB = new ArrayList();

        //Assign namevalue pairs to toDB
        try {
            toDB.add(new BasicNameValuePair("A",dta.getA()));
            toDB.add(new BasicNameValuePair("B",dta.getB()));
            toDB.add(new BasicNameValuePair("C",dta.getC()));
            toDB.add(new BasicNameValuePair("D",dta.getD()));
            toDB.add(new BasicNameValuePair("E",dta.getE()));
            toDB.add(new BasicNameValuePair("F",dta.getF()));
        } catch (Exception e) {
            Log.e(tag,e.toString());
        }

        //http post
        try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://mydom.com/myFolder/file.php");
                httppost.setEntity(new UrlEncodedFormEntity(toDB));
        }catch(Exception e){
                Log.e(tag, "Error in http connection "+e.toString());
        }
    }

我的清单文件如下:
< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
< uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
< uses-permission android:name="android.permission.INTERNET" />

在 logcat 我有以下内容:
Inside connectToServer
java.lang.NullPointerException

为什么我会收到 NullPointerException ?
谢谢。

【问题讨论】:

  • 什么是tagdta,它们在哪里定义?
  • 请发布您的 Logcat 所说的内容,什么是 dta?
  • 对象“dta”和“tag”是否引用了任何东西?这些是我能看到的唯一没有在这里初始化的东西。
  • @jondavidjohn 我已将它们定义为包含此方法的类中的私有变量。 Kumar 我的问题中有相关的 logcat 条目。 DDV请参考以上
  • 能否请您发布整个 Logcat?堆栈跟踪在这里可能很有用。为NullPointerException 指定了哪一行?另外,你在哪里初始化dtatag

标签: java android nullpointerexception


【解决方案1】:

您在方法中取消引用的某些对象为 null,因此它可能是 eta。

【讨论】:

  • 让我检查一下并回复你
  • 谢谢。我知道了。我没有调用构造函数。它现在可以工作了。
  • 对了有没有办法检查我是否收到了php文件中的信息?
【解决方案2】:

你很可能试图调用一个你没有成功创建的不存在对象的方法。

如果没有异常处理程序,您将获得日志中发生错误的行号。

【讨论】:

    【解决方案3】:

    尝试实际指定ArrayList的类型

    例如ArrayList&lt;BasicNameValuePair&gt; toDB = new ArrayList&lt;BasicNameValuePair&gt;();

    还要确保 tag 或 dta 确实在某处初始化(也许当您对它们进行 delcare 时,您可以继续为它们分配空字符串。例如:String tag = "";DTA dta = new DTA(); 或任何 dta。

    【讨论】:

    • 谢谢。请参考上面的cmets。那不是问题。
    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多