setExtent导致BlackBerry 9000中未找到ScrollView错误

时间:2011-04-28 09:40:48

标签: blackberry scrollview runtime-error

此 -

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继承的方法{{1}},它位于模拟器设置使用的4.6 API中。为什么? ScrollView与任何事情有什么关系?

1 个答案:

答案 0 :(得分:3)

4.6 API中没有

net.rim.device.api.ui.ScrollView - 这就是原因。因此,当您尝试在4.6 OS模拟器上运行时,我怀疑您在代码中的某处使用了ScrollView

还有什么API版本用于构建项目?通常(如果您使用4.6 API lib / JDE),您应该在构建步骤中遇到此错误(与运行时相比)。

<强>更新

我真的不知道为什么这与setExtent()有关。

我怀疑你最有可能使用API​​ 6进行编译。对于API 6,继承链看起来像Field&gt; ScrollView&gt; Manager&gt; VerticalFieldManager,因此当您编译VerticalFieldManager时,它可能会使用ScrollView。也许这就是你在API 4.6模拟器上得到错误的原因。您可以尝试在任何OS 6.0模拟器上运行您的应用程序来测试这个想法。我相信它不应该给出这个错误。

P.S。我没有太多使用BB Eclipse插件(一旦我尝试过,但由于某些问题而拒绝了),所以我不知道究竟在哪里检查API版本。但肯定有必要检查一下。