【问题标题】:I pass a string -> NullPointerException [duplicate]我传递了一个字符串-> NullPointerException [重复]
【发布时间】:2014-10-11 13:48:32
【问题描述】:

我正在编写一个 ADnroid 应用程序,当我此时传递一个字符串时,我得到一个空指针...有人知道为什么吗?

代码

        Elements titles = doc.select("h3 a");
        String[] titlelist = null;
        Bitmap[] bitmaps = null;
        outputText = "";
        int i = 0;
        for (Element title : titles) {
            titlelist[i] = title.text(); // <--- here comes the NullPointer
            i = i + 1;
        }

日志:

08-18 17:17:54.522  26470-26470/de.m4lik.somesampleapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: de.m4lik.somesampleapp, PID: 26470
java.lang.NullPointerException
        at de.m4lik.somesampleapp.MainActivity$TheTask.onPostExecute(MainActivity.java:95)
        at de.m4lik.somesampleapp.MainActivity$TheTask.onPostExecute(MainActivity.java:68)
        at android.os.AsyncTask.finish(AsyncTask.java:632)
        at android.os.AsyncTask.access$600(AsyncTask.java:177)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
        ...

doc.select 部分是我从网站中选择标题的 jsoup 代码。

【问题讨论】:

  • 你试过在调试器中运行它吗?
  • 一个合适的 IDE 不应该让你甚至编译它,或者至少给你一个警告。 (另外,我不明白您为什么将列表显式设置为null

标签: java android nullpointerexception


【解决方案1】:

titlelist 未初始化。

您需要在分配字符串之前对其进行初始化:

String[] titlelist = new String[titles.size()]; // assuming Elements has a size() method

【讨论】:

  • 谢谢,与它合作。
【解决方案2】:

您尚未初始化您的titlelist array,因此引用该array 的元素将抛出NullPointerException

初始化它:

String[] titlelist = new String[titles.size()];

【讨论】:

    【解决方案3】:

    您的变量titlelist 使用null 值定义。使用

    访问元素
    titlelist[i]
    

    因此产生了 NPE。由于您只是设置数组元素,因此您可能希望将此变量声明为

    int length = calculateLength(titles); // you must implement this method yourself
    String[] titlelist = new String[length];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 2015-03-30
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      相关资源
      最近更新 更多