1

В моем проекте я использую this library, DatePickerDialog, вместе с HoloEverywhere и несколькими другими небольшими библиотеками. Моя проблема в том, что я получаю исключение NullPointerException, когда пытаюсь создать этот диалог только на 2.3.3 устройствах.findViewById в DialogFragment возвращает null на 2.3.3 устройства

Странно, однако, что, когда я использую эту библиотеку и создаю диалог с тем же кодом в других проектах (например, демонстрацию HoloEverywhere), он отлично работает на всех устройствах. Я создаю DatePickerDialog с помощью следующего кода из внутри (HoloEverywhere) метод OnClick Activity в:

final DatePickerDialog dpd = DatePickerDialog.newInstance(this, 2013, 5, 16, false); 
     dpd.setYearRange(2013, 2015); 
     dpd.show(getSupportFragmentManager(), "datepicker"); 

Который дает мне следующую ошибку:

08-19 20:55:45.434: E/AndroidRuntime(1330): FATAL EXCEPTION: main 
08-19 20:55:45.434: E/AndroidRuntime(1330): java.lang.NullPointerException 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at com.fourmob.datetimepicker.date.DatePickerDialog.onCreateView(DatePickerDialog.java:203) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.os.Handler.handleCallback(Handler.java:587) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.os.Handler.dispatchMessage(Handler.java:92) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.os.Looper.loop(Looper.java:130) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-19 20:55:45.434: E/AndroidRuntime(1330):  at dalvik.system.NativeStart.main(Native Method) 

Класс/линии, упомянутые в StackTrace можно найти here

Надеюсь, этого достаточно информации. Привет, ребята.

+0

Мне кажется, что для этого используется макет - у вас есть - есть ли идентификатор? – g00dy

+0

Все материалы макета выполнены в библиотеке. [См. Здесь] (https://github.com/flavienlaurent/datetimepicker/blob/master/datetimepicker-library/res/layout) для макета и его идентификаторов. Указанный файл макета - date_picker_dialog.xml, но он использует s, поэтому я связал всю папку. – JohnathanSmithy

+0

Ну, в строке 203 (из LogCat) я вижу этот 'this.mMththAndDayView.setOnClickListener (this);', который является 'this.mMththAndDayView = ((LinearLayout) view.findViewById (R.id.date_picker_month_and_day)); , Ссылка, которую вы мне дали, не содержит этого макета. – g00dy

ответ

1

Оказывается, другая библиотека, которую я также реализовал (android-betterpickers), также содержала файл /res/date_picker_dialog.xml. Как-то это приводило к путанице только в Прянике (странно, но верно). Это было разрешено путем переименования файла date_picker_dialog.xml.

+0

OMG я искал это soooo long, я пробовал много вещей: S благодарит много переименований: D – Javier

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

  • Нет связанных вопросов^_^