2010-08-26 58 views
1

我有以下3个项目工作区: 图书馆 测试 GUI调试黑莓库

测试只打了图书馆。这是一个类型设置为“库”的BB项目 我的所有测试似乎都在工作并触发代码。如果我使用JUnit调试测试,我可以介入到我的库中的函数,查看我的变量和所有正常的调试善良。

我创建了GUI并将库包含在Required Projects构建路径中。

我遇到的问题是试图通过模拟器上的GUI调试库。当我调试应用程序时,我可以轻松找到我的应用程序。现在它是一个简单的调用库的按钮。

例如,像:

FieldChangeListener checkListener = new FieldChangeListener() { public void fieldChanged(Field field, int context) { 
LibraryClass lc = new LibraryClass(); 
Dialog.Alert("Class loaded"); 
}}; 

如果我把一个破发点上LibraryClass LC =新LibraryClass()Eclipse将打破上的按钮按下。

如果我跨过这种方法没有任何反应。代码永远不会前进到Dialog.Alert()行。

如果我试图进入构造函数,看看里面挂了什么,没有任何反应。 Eclipse从来没有进入。

起初我想也许这是一种时间问题,其中的GUI线程需要做些事情,所以我的图书馆电话迷路了。

我试过创建一个实现Runnable的类,以便我可以调用ThreadClass.Run()并让该类启动库调用。但它表现相同。

有没有例外抛出,它就好像它走下了地球的尽头。

有没有人有任何想法或见过类似的东西?它是不是包含库的模拟器上的配置问题?我错过了什么明显的东西?

回答

1

事实证明,我显然库调用抛出一个NoClassDefFoundError

这不是一个例外,只是一个错误。显然,我的应用程序只是在吞咽错误。不幸的是,catch块上的堆栈跟踪是空的,所以我不确定这发生了什么。但至少这是比以前更多的信息。

发现错误。 Blackberry正在编译jdk 1.6,它将字符串连接转换为StringBuilder。但是,JRE不支持StringBuilder。我将编译框架改为1.4,一切正常。

我把整个过程贴在my blog