【问题标题】:How to debug a blackberry verification error?如何调试黑莓验证错误?
【发布时间】:2010-12-16 09:35:57
【问题描述】:

我得到的只是:

“模块‘我的应用’有验证 偏移量“1646”处的错误“xxxx”

根据blackberry,其中包含对第三方开发人员无用的信息。

我查看了错误日志(使用“catfail”选项),我发现的只是一个导致它崩溃的方法,而不是为什么。有趣的是,当我从应用程序中删除此方法时,它仍然会记录导致错误的相同方法。有点奇怪。

额外信息:我的应用包含 LWUIT 和 blackberryport

我还阅读了KB article DB-00744,这表明验证错误可能意味着以下任何“14”错误。是随机的,还是这个逻辑背后有方法?

【问题讨论】:

  • 我的同事发现了错误:一个外部库支持触摸,而我们正在为不支持触摸的黑莓 4.6 构建。

标签: java debugging blackberry java-me


【解决方案1】:

我查看了错误日志(使用“catfail”选项),我发现的只是一个导致它崩溃的方法,而不是为什么。有趣的是,当我从应用程序中删除此方法时,它仍然会记录导致错误的相同方法。有点奇怪。

您一定是在构建/部署/测试过程中的某个地方犯了错误……假设您正在谈论您的应用程序自己的方法之一,而不仅仅是您的应用程序调用的某个方法。再试一次。

是随机的吗?或者他们是这个逻辑背后的一种方法?

人们可能会认为,这些问题都已被发现会导致在各种版本的 Blackberry 平台上使用各种客户应用程序进行验证错误。可以说,其中有几个似乎有点奇怪。例如,不必要的导入 (3) 应该是无害的,错误地使用“包私有”(4) 应该会导致 Java 编译错误......我曾想过。而且我不喜欢这个列表经常没有说明为什么这些措施可能是必要的。

从这篇笔记来看,我感觉黑莓开发工具链中的一些工具设计得相当糟糕。 (对于验证者来说,生成信息性诊断而不是未记录的“内部”错误代码肯定不会那么困难。并且提到的一些东西“闻起来”就像错误的解决方法。)

【讨论】:

  • 看起来很多奇怪的问题都与名称冲突的可能性间接相关——甚至可能与内部成员变量有关。虽然这看起来很奇怪,因为大概这些名称没有在字节码中维护......
  • 不必要的导入不会对生成的代码产生任何影响。 “缺失”的可见性要么是无害的,要么会导致编译错误。如果其中任何一个都不正确,那么 Java 编译器就有问题。
  • 我更多地指的是包的私人使用。也就是说,拥有更好的工具会很好——如果这在运行时是可捕获的,那么它也是可捕获的编译时并且不应该是一个猜谜游戏。 (我目前在 12 个 BB SDK 模拟器中的 4 个上遇到同样的问题——其中许多运行相同的操作系统版本。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 2012-02-27
  • 2012-01-08
  • 1970-01-01
相关资源
最近更新 更多