2013-12-13 4 views
6

У меня проблема с отладкой моего кода. Я получаю ошибку java.lang.NumberFormatException: Invalid int: "" на линии 88, которая равна . Я не понимаю, как экземпляр Calendar может произвести такую ​​ошибку.java.lang.NumberFormatException: Invalid int: ""

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

Это не другая переменная ... это неверная дата в календаре. –

+0

@Elliott Frisch Нет, переменная c уникальна в этом классе. – Kristopher

+0

Попробуйте 'c.setLenient (true);'. Также 'java.util.Calendar c = java.util.Calendar.getInstance();'. –

ответ

3

Я только что протестировал приложение на Samsung Galaxy S3 (i9300), и ошибки на нем нет. Похоже, что это проблема программного обеспечения Huawei.

0

Попробуйте это:

Calendar calendar = new GregorianCalendar(); 

Не знаю, почему ваш не работает, но Calendar это абстрактный класс, поэтому он может работать лучше, если вы попробуете GregorianCalendar.

+1

Calendar.getInstance() не __unsafe__ –

+0

Ничего не меняет. – Kristopher

+0

новый GregorianCalendar() предполагает, что ваши пользователи используют григорианские календари, но не каждая страна/регион использует его. – SergeyB

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().

+0

Вы изменили имя переменной, иначе код будет таким же, как и у OP. Как это помогает? – Melquiades

+0

@Melquiades - вы правы, обновили ответ. – SergeyB

Смежные вопросы