调试代码时遇到问题。我在第88行遇到java.lang.NumberFormatException: Invalid int: ""
错误Calendar c = Calendar.getInstance();
。我不明白Calendar
实例如何产生这样的错误。
WakefulReceiverWorker.java:
Calendar c = Calendar.getInstance(); // <----- line 88
long newStart = c.getTimeInMillis() + 300000;
AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, randomInt, intent2,PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, (newStart), pendingIntent);
logcat的:
12-13 19:57:01.589 2070-2085/com.example.app W/System.err﹕ java.lang.NumberFormatException: Invalid int: ""
12-13 19:57:01.619 2070-2085/com.example.app W/System.err﹕ at java.lang.Integer.invalidInt(Integer.java:138)
12-13 19:57:01.629 2070-2085/com.example.app W/System.err﹕ at java.lang.Integer.parseInt(Integer.java:359)
12-13 19:57:01.639 2070-2085/com.example.app W/System.err﹕ at java.lang.Integer.parseInt(Integer.java:332)
12-13 19:57:01.639 2070-2085/com.example.app W/System.err﹕ at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
12-13 19:57:01.639 2070-2085/com.example.app W/System.err﹕ at java.util.Calendar.<init>(Calendar.java:745)
12-13 19:57:01.639 2070-2085/com.example.app W/System.err﹕ at java.util.GregorianCalendar.<init>(GregorianCalendar.java:338)
12-13 19:57:01.649 2070-2085/com.example.app W/System.err﹕ at java.util.GregorianCalendar.<init>(GregorianCalendar.java:239)
12-13 19:57:01.649 2070-2085/com.example.app W/System.err﹕ at java.util.Calendar.getInstance(Calendar.java:1086)
12-13 19:57:01.649 2070-2085/com.example.app W/System.err﹕ at com.example.app.WakefulReceiverWorker.onHandleIntent(WakefulReceiverWorker.java:88)
12-13 19:57:01.659 2070-2085/com.example.app W/System.err﹕ at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
12-13 19:57:01.659 2070-2085/com.example.app W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:99)
12-13 19:57:01.659 2070-2085/com.example.app W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
12-13 19:57:01.659 2070-2085/com.example.app W/System.err﹕ at android.os.HandlerThread.run(HandlerThread.java:60)
答案 0 :(得分:3)
我刚刚测试了三星Galaxy S3(i9300)上的应用程序,此设备上没有错误。这似乎是华为的软件问题。
答案 1 :(得分:0)
试试这个:
Calendar calendar = new GregorianCalendar();
不确定为什么你的工作不起作用,但Calendar
是一个抽象类,所以如果你尝试GregorianCalendar它可能会更好。
答案 2 :(得分:0)
尝试以这种方式实例化日历:
Locale locale = Locale.getDefault();
System.out.println("Locale is : [" + locale + "]"); // make sure there is a default Locale
Calendar calendar = Calendar.getInstance(locale);
-----更新------
如果你经历了堆栈跟踪,看起来这就是罪魁祸首:
12-13 19:57:01.639 2070-2085/com.example.app W/System.err﹕ at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
因为堆栈跟踪中的下一行开始解析整数,可能是getHwFirstDayOfWeek()返回的值。