java - 只有部分用户报告 "Resource Not Found"错误。这有意义吗?

标签 java android jodatime crittercism

我发现我已发布的 Android 应用在 Crittercism(崩溃报告服务)上出现了几个错误。跟踪如下:

0   java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: dalvik.system.PathClassLoader@45908320
1    at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:211)
2    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
3    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
4    at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:462)
5    at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:416)
6    at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:115)
7    at org.joda.time.chrono.GregorianChronology.<clinit>(GregorianChronology.java:71)
8    at org.joda.time.chrono.ISOChronology.<clinit>(ISOChronology.java:66)
9    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:61)
10   at org.joda.time.DateTime.<init>(DateTime.java:155)

搜索表明这通常是一个编译问题(通常是 Joda Time Library 没有添加到构建路径或其他东西),但是为什么几千个用户中只有大约 4 个用户会看到这个错误?

我唯一的猜测是有人试图反编译该应用程序以盗版它(它是一个相当流行的付费应用程序),并且当他们错误地重新编译时看到此错误。在那种情况下,我很高兴他们看到了错误,我不需要担心这个。

另一个奇怪的事情是导致问题的代码被一个 try/catch 包围,它似乎没有捕捉到它:

try {
    DateTime dt = new DateTime();
    DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
    return fmt.print(dt);
} catch (Exception e) {
    //Report issue to Analytics service
} 

在我看来,这个错误似乎更不可能出现在 Crittercism 上,因为它应该被捕获。谁能解释一下?

最佳答案

这可能发生在您错过初始化的情况下:

JodaTimeAndroid.init(this);

关于java - 只有部分用户报告 "Resource Not Found"错误。这有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743241/

相关文章:

java - 有人可以建议一个测试自动化工具来自动化 Java applet 窗口吗?

java - while 循环后的代码不接受输入 [Java]

android - 如何检测 HTC Sense?

android - 如何在 Android 中更改列表项的背景颜色?

java - ISOPeriodFormat.standard().parsePeriod ("12:00:00") 异常

java - 在 Thymeleaf 中添加表单

android - 如何读取 NFC 标签并发送它?

java - 将 java 日期转换为 dbf FoxPro 日期时间格式

java - Spring Data MongoDB 默认情况下未启用 Joda-Time 转换器

javascript - 将java字符串转换为javascript字符串