Android 应用程序中的 java.lang.NullPointerException。

标签 java android nullpointerexception

我试图用 ArrayList 中的信息填充“Runners”数组,但出现空指针异常。我已经打印出了 arraylist 和 Runners 数组的大小,它们是应有的大小。

--我只包含了我认为解决问题所必需的代码,如果您需要更多,请评论

 private Runner r[];
 private EditText runnerName,trackLength,raceDistance;
 private ArrayList<String> runners = new ArrayList<String>();

 public void onClickSetRunner(View v){
    runners.add(runnerName.getText().toString());
    runnerName.setText("");
}

 public void onClickFinish(View v){         
    r = new Runner[runners.size()];     
    int i =0;       
    for(String name : runners){             
        r[i].setFirst(name);
        i++;
    }


}

Logcat(抱歉我无法格式化)

04-15 09:09:45.009: E/AndroidRuntime(28225): FATAL EXCEPTION: main
04-15 09:09:45.009: E/AndroidRuntime(28225): Process: com.example.runtracker, PID: 28225
04-15 09:09:45.009: E/AndroidRuntime(28225): java.lang.IllegalStateException: Could not execute method of the activity
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.view.View$1.onClick(View.java:3865)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.view.View.performClick(View.java:4480)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.view.View$PerformClick.run(View.java:18673)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.os.Handler.handleCallback(Handler.java:733)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.os.Handler.dispatchMessage(Handler.java:95)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.os.Looper.loop(Looper.java:157)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.app.ActivityThread.main(ActivityThread.java:5872)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at java.lang.reflect.Method.invokeNative(Native Method)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at java.lang.reflect.Method.invoke(Method.java:515)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1069)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at dalvik.system.NativeStart.main(Native Method)
04-15 09:09:45.009: E/AndroidRuntime(28225): Caused by: java.lang.reflect.InvocationTargetException
04-15 09:09:45.009: E/AndroidRuntime(28225):    at java.lang.reflect.Method.invokeNative(Native Method)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at java.lang.reflect.Method.invoke(Method.java:515)
04-15 09:09:45.009: E/AndroidRuntime(28225):    at android.view.View$1.onClick(View.java:3860)
04-15 09:09:45.009: E/AndroidRuntime(28225):    ... 11 more
04-15 09:09:45.009: E/AndroidRuntime(28225): Caused by: java.lang.NullPointerException
04-15 09:09:45.009: E/AndroidRuntime(28225):    at com.example.runtracker.MainActivity.onClickFinish(MainActivity.java:99)
04-15 09:09:45.009: E/AndroidRuntime(28225):    ... 14 more

最佳答案

您还没有真正初始化r[i]:

r = new Runner[runners.size()];     
int i =0;       
for(String name : runners){             
    r[i].setFirst(name);

您有一个数组或Runner,但数组中的每个条目默认为null。添加

r[i] = new Runner();

在那里初始化一个条目。

关于Android 应用程序中的 java.lang.NullPointerException。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23084936/

相关文章:

java - 在 android 中使用 ORMLite 保存一个集合类

java - spring - 从类路径资源 hibernate 加载 *.hbm.xml

java - 什么是NullPointerException,我该如何解决?

java - 诊断 "RuntimeException: Unable to start activity Caused by: java.lang.NullPointerException"

java - 如何发送未在 Thrift 中定义结构的 Java 对象

java.net.SocketException : Cannot allocate memory (not Mac) 异常

java - 从 ViewPagerIndicator 保存数据

android.database.sqlite.SQLiteException : table has no column named (code 1)

java - AES 加密,解密文件中出现额外的垃圾字符

java.lang.NullPointerException 它有效,但错误。试图找出错误