setExtent вызывает ошибку ScrollView not found в BlackBerry 9000 - PullRequest
0 голосов
/ 28 апреля 2011

Это -

import net.rim.device.api.ui.container.VerticalFieldManager;

public class FixedHeightVerticalFieldManager extends VerticalFieldManager 
{
  private int height;

  public FixedHeightVerticalFieldManager(int height)
  {
    super();
    this.height = height;
  }

  protected void sublayout(int maxWidth, int maxHeight)
  {
    super.sublayout(maxWidth, height);
    setExtent(height);
  }
}

- приводит к зависанию эмулятора с исключением времени выполнения net.rim.device.api.ui.ScrollView not found.Кажется, это вызвано вызовом setExtent, который является методом VerticalFieldManager, унаследованным от Field, который находится в 4.6 API, который эмулятор настроен для использования.Зачем?Какое отношение имеет ScrollView к чему-либо?

1 Ответ

3 голосов
/ 28 апреля 2011

net.rim.device.api.ui.ScrollView недоступно в 4.6 API - вот причина. Поэтому я подозреваю, что вы используете ScrollView где-то в своем коде, когда пытаетесь запустить симулятор ОС 4.6.

Кроме того, какая версия API используется для создания проекта? Обычно (если вы используете 4.6 API lib / JDE), вы должны получить эту ошибку на этапе сборки (в отличие от времени выполнения).

UPDATE

Я действительно понятия не имею, почему это связано с setExtent().

Я подозреваю, что, скорее всего, вы компилируете с использованием API 6. Для API 6 цепочка наследования выглядит как Field> ScrollView> Manager> VerticalFieldManager, поэтому при компиляции VerticalFieldManager она может использовать ScrollView. Может быть, поэтому вы получаете ошибку на симуляторе API 4.6. Вы можете проверить эту идею, попробовав запустить приложение на любом симуляторе OS 6.0. Я считаю, что это не должно давать эту ошибку.

P.S. Я не очень часто использовал плагин BB Eclipse (однажды попробовал, но потом отказался из-за некоторых проблем), поэтому не могу сказать, где именно проверять версию API. Однако наверняка должен быть способ проверить это.

...