Jump to content
  • Status: Fixed
  • Priority: Minor
  • Resolution: Fixed
  • Platform: Android
  • Affects version: 1.9.3.0

При отображении календаря на Android 5.0 (SDK 21) приложение падает с ошибкой.

 

Обойти можно так:

procedure TmwServiceAdd.fgFormShow(Sender: TObject);
begin
  inherited;
{$IFDEF ANDROID}
  if TJBuild_VERSION.SDK_INT <= 21 then
    cdService.ShowWeekCount := 6;
{$ENDIF}
end;

Stack trace прилагаю

 

SetupDiagResults.txt


Fix version: 1.10.0.0

User Feedback

Recommended Comments

  • Administrators

Судя по стек трейсу, проблема заключается в реализации календаря в самой системе Android. А именно по стек трейсу наблюдается ошибка деления на ноль в процессе выравнивания элементов календаря. Я вряд ли смогу ее поправить, так как ошибка именно в Андроиде. Но я могу предположить, что возможно она связана с тем, что размер календаря маленький. Я бы посоветовать попробовать увеличить размер календаря на форме. Возможно, это поможет решить проблему именно на вашей версии Андроида.

Javded

Members

Менять размер я пробовал, не помогло.

Я посмотрел, где происходит деление на 0.

            mHeight = (mListView.getHeight() - mListView.getPaddingTop() - mListView
                    .getPaddingBottom()) / mShownWeekCount;

Дело в количестве показываемых недель.

Присваивание происходит в конструкторе.

        mShownWeekCount = a.getInt(R.styleable.CalendarView_shownWeekCount,
                DEFAULT_SHOWN_WEEK_COUNT);

Константа описана так:
    private static final int DEFAULT_SHOWN_WEEK_COUNT = 6;

То есть почему-то onMeasure происходит до присваивания значения количества показываемых недель или DEFAULT_SHOWN_WEEK_COUNT вычисляется неверно.

  • Administrators

Значение Статус изменено на: Fixed

Значение Резолюция изменено на: Fixed

Значение Версия с исправлением изменено на: 1.9.5.0

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.