Long.parselong numberformatexception

时间:2012-06-15 20:48:46

标签: android sqlite

我在市场上有一个应用程序,并收到指向同一行的一些错误。事实是,我无法确定错误是什么,因为我还没有在模拟器和几部手机中遇到它。我在模拟器中测试了它的ldpi,mdpi,hdpi密度,以及2.1和4.0.3。我在2.2,2.3.5和4.0.3手机上试用过它。

这是代码和错误行:

   Log.i("REFRESH d1 | d2", d1 + "|" + d2); //null | null

 if ((d1 == null) && (d2 == null))
            {
                String dA = "";
                HotOrNot infod = new HotOrNot(Calllogs.this);
                infod.open();
                Cursor cursorA = infod.getAllTitles_DateLimit1("DESC");
                 if (cursorA.moveToFirst())
                 {
                 do{
                    dA = cursorA.getString(5);
                }while (cursorA.moveToNext());
                }

                d1= dA;
                infod.close();

                 String dB = "";
                HotOrNot infodd = new HotOrNot(Calllogs.this);
                infodd.open();
                Cursor cursorB = infodd.getAllTitles_DateLimit1("ASC");
                if (cursorB.moveToFirst())
                {
                   do{
                    dB = cursorB.getString(5);
                }while (cursorB.moveToNext());
                }

                d2=dB;
                infodd.close();
            }
            else
            {

            }


            Log.i("REFRESH2 d1 | d2", d1 + "|" + d2);  // 1339789896078|1339790132268


                Calendar cal1 = Calendar.getInstance();
                cal1.setTimeInMillis(Long.parseLong(d1)); //NumberFormatException
                cal1.set(cal1.get(Calendar.YEAR), cal1.get(Calendar.MONTH), cal1.get(Calendar.DATE), 0, 0, 0);
                GlobalVars.setD1(String.valueOf(cal1.getTimeInMillis()));



                Calendar cal2 = Calendar.getInstance();
                cal2.setTimeInMillis(Long.parseLong(d2));
                cal2.set(cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH), cal2.get(Calendar.DATE), 23, 59, 59);
                GlobalVars.setD2(String.valueOf(cal2.getTimeInMillis()));

错误

  

java.lang.NumberFormatException:at   java.lang.Long.parseLong(Long.java:337)at   java.lang.Long.parseLong(Long.java:311)at   com.b2creative.b2callstats.Calllogs $ 14.run(Calllogs.java:1416)at at   java.lang.Thread.run(Thread.java:1019)

d1和d2是声明的字符串,来自数据库的数据是字符串很好(我将日期存储为字符串(如long:1339789896078))。除了用户没有calllog中的调用,因此数据库是空的,我认为没有其他原因导致此异常。

也许long.decode更好?

我认为用户可能没有SD卡,但它可以在没有SD卡的2部手机上顺利运行。 什么可以成为问题的根源?

0 个答案:

没有答案