我从图像(我自己定义的类)对象中获取一个字符串。这是发生错误的代码块,在第4行(Log):
for (int i = 0; i < imageList.size(); i++) {
Image image = imageList.get(i);
Log.d("", image.getDate());
String[] date = image.getDate().split(" ");
然后在控制台中打印出第1行的日期值,那么问题是什么?
03-17 12:22:09.054 20832-20832/com.example.sanj.flowt D/﹕ 30 08 2014
03-17 12:22:09.054 20832-20832/com.example.sanj.flowt D/AndroidRuntime﹕ Shutting down VM
03-17 12:22:09.054 20832-20832/com.example.sanj.flowt W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x415cddb8)
03-17 12:22:09.054 20832-20832/com.example.sanj.flowt E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.sanj.flowt, PID: 20832
java.lang.NullPointerException: println needs a message
答案 0 :(得分:1)
你好像在说这个NPE在Log.d
这里打电话:
Log.d("", image.getDate());
这意味着image.getDate()
正在返回null
。
但是,我对你在这里提供的证据非常怀疑。根据{{1}}的{{3}},不存在android.media.Image
方法。
答案 1 :(得分:0)
你不能使用" "
按空格分割,它应该是例如"\\s+"
(所有空格)。请注意split
需要regexp,doc here
编辑:错误的ans,用" "
分割是可能的,我的坏:)
答案 2 :(得分:0)
同样简单,你必须设置一个字符串:
Log.d("LOG_KEY","Date:"+image.getDate());
这取决于返回的类型。例如,如果image.getDate()将返回一个String类型,那么你不需要像我所示的那样(如果你确定它不返回null)。但如果它返回别的东西,你必须。这是它在API中的描述,第二个参数必须是String:
developer.android.com/reference/android/util/Log.html
如果你这样做并且image.getDate()返回null,则不会抛出异常。然后输出将是:“Date:null”,如果此方法返回null。这是一种安全的方式。
无论是什么形象,像Stepehn C.所说,Image没有方法getDate(),所以我怀疑你已经创建了一个名为Image的自定义类。不应该这样做,因为有一个名为Image
的android类