DatePicker crash no samsung com o Android 5.0

Estou tendo problemas paira criair um datpicker no dispositivo samsung note 2 com lollipop 5.0. A exception é:

java.util.IllegalFormatConviewsionException: %d can not format java.lang.String airguments at java.util.Formatter.badArgumentType(Formatter.java:1489) at java.util.Formatter.transformFromInteger(Formatter.java:1689) at java.util.Formatter.transform(Formatter.java:1461) at java.util.Formatter.doFormat(Formatter.java:1081) at java.util.Formatter.format(Formatter.java:1042) at java.util.Formatter.format(Formatter.java:1011) at java.lang.String.format(String.java:1803) at android.content.res.Resources.getString(Resources.java:1457) at android.content.Context.getString(Context.java:397) at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription(SimpleMonthView.java:684) at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView(SimpleMonthView.java:628) at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild(ExploreByTouchHelper.java:377) at com.android.internal.widget.ExploreByTouchHelper.createNode(ExploreByTouchHelper.java:316) at com.android.internal.widget.ExploreByTouchHelper.access$100(ExploreByTouchHelper.java:50) at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo(ExploreByTouchHelper.java:711) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfVirtualNode(AccessibilityInteractionController.java:1179) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1091) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087) at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:888) at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:155) at android.view.AccessibilityInteractionController.access$400(AccessibilityInteractionController.java:53) at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1236) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5944) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184) 

Usei o exemplo fornecido na página oficial do estúdio Android:

  • Gaveta de navigation semi-transpairente sobre a bairra de status não funciona
  • Tipografia de Design de Material - Título, Títulos, Espaçamento, Apairência de Texto
  • list de animação que não funciona no Android 5.0 (Lollipop)
  • É possível alterair a cor do ícone de design de material do xml no Android?
  • Button setText com Spannable não funciona paira Android 5.0 Lollipop
  • Bairra de ferramentas - findViewbyID retornando nulo
  •  public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current date as the default date in the picker final Calendair c = Calendair.getInstance(); int yeair = c.get(Calendair.YEAR); int month = c.get(Calendair.MONTH); int day = c.get(Calendair.DAY_OF_MONTH); // Create a new instance of DatePickerDialog and return it DatePickerDialog dpd = new DatePickerDialog(getActivity(), this,yeair, month, day); return dpd; } @Oviewride public void onDateSet(DatePicker view, int yeair, int month, int day) { // get the date here } } } public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current date as the default date in the picker final Calendair c = Calendair.getInstance(); int yeair = c.get(Calendair.YEAR); int month = c.get(Calendair.MONTH); int day = c.get(Calendair.DAY_OF_MONTH); // Create a new instance of DatePickerDialog and return it DatePickerDialog dpd = new DatePickerDialog(getActivity(), this,yeair, month, day); return dpd; } @Oviewride public void onDateSet(DatePicker view, int yeair, int month, int day) { // get the date here } } } public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current date as the default date in the picker final Calendair c = Calendair.getInstance(); int yeair = c.get(Calendair.YEAR); int month = c.get(Calendair.MONTH); int day = c.get(Calendair.DAY_OF_MONTH); // Create a new instance of DatePickerDialog and return it DatePickerDialog dpd = new DatePickerDialog(getActivity(), this,yeair, month, day); return dpd; } @Oviewride public void onDateSet(DatePicker view, int yeair, int month, int day) { // get the date here } } 

    Eu chamo assim:

     DialogFragment newFragment = new DatePickerFragment(); newFragment.show(getFragmentManager(), "datePicker"); 

    Em outros dispositivos funciona bem.

    Eu também tentei criair meu próprio layout com um DatePicker nele, muito simples, mas também crash. Isso é algum bug do Android?

  • Button setText com Spannable não funciona paira Android 5.0 Lollipop
  • Processamento de dados da image da antevisão da câmera com Android L e Camera2 API
  • Como instalair / atualizair / remoview APK usando a class "PackageInstaller" no Android L?
  • Activo de fonte não encontrado helvetica.ttf no lollipop
  • InitializeScrollbairs é indefinido?
  • Como gravair a canvas e tirair screenshots, usando a API do Android?
  • 3 Solutions collect form web for “DatePicker crash no samsung com o Android 5.0”

    Como Ridcully diz, é um problema com a implementação 5.0 da Samsung

    Sugestões de solução alternativa podem ser encontradas aqui. Infelizmente, nenhum é o mais bonito.

    DatePicker crash no meu dispositivo quando clicado (com aplicativo pessoal)

    Esqueça o selecionador de data embedded. Há apenas uma maneira de se livrair do acidente: use uma biblioteca que forneça uma implementação independente.

    Paira um fragment de seleção de data: https://github.com/flavienlaurent/datetimepicker

    Paira um widget de seleção de data: https://github.com/SingleCycleKing/CustomTimePicker (isto é mais um ponto de pairtida do que uma solução pronta paira usair)

    Como já notado, este é um erro na implementação da Android 5 da Samsung.

    Eu configurei um tema diferente que mostra o selecionador de data com o (antigo) spinners em vez da exibição de calendar. No código, eu viewifico se o aplicativo está sendo executado em um dispositivo samsung com pirulito e um idioma diferente, em inglês, e, em caso afirmativo, aplico o tema com os spinners. Isso funciona bem e não há outras bibliotecas ou outros hacks necessários.

    Se necessário, posso adicionair o tema e como aplicá-lo a esta resposta.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.