java - Android 上的 ThreeTen-Backport 错误 - ZoneRulesException : No time-zone data files registered

标签 java android exception jsr310 threetenbp

我正在为我的 Android 项目使用 ThreeTen-Backport 库(因为 java.time 尚未在 android 开发中实现)。

当我写 LocalDate today=LocalDate.now();LocalTime time=LocalTime.now(); 我得到以下异常:

Caused by: org.threeten.bp.zone.ZoneRulesException: 
  No time-zone data files registered   
      at org.threeten.bp.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:176)
      at org.threeten.bp.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:133)
      at org.threeten.bp.ZoneRegion.ofId(ZoneRegion.java:143)
      at org.threeten.bp.ZoneId.of(ZoneId.java:357)
      at org.threeten.bp.ZoneId.of(ZoneId.java:285)
      at org.threeten.bp.ZoneId.systemDefault(ZoneId.java:244)
      at org.threeten.bp.Clock.systemDefaultZone(Clock.java:137)
      at org.threeten.bp.LocalDate.now(LocalDate.java:165)

同一行代码在我拥有的另一个 java 项目中运行良好,该项目使用 native java.time 库。

我搜索了一个可能的解决方案,但找不到任何有用的解决方案:一个解决方案建议我需要使用另一个包含时区规则的 jar,而另一个解决方案建议类路径中可能有两个或多个 ThreeTenBP 库。
这些情况与我的情况不符。

build.gradle 文件的依赖部分,我尝试了一些配置:

  • 一开始我用-compile 'com.jakewharton.threetenabp:threetenabp:1.0.3'
  • 然后,我尝试了—— 编译'org.threeten:threetenbp:1.0.3'
  • 在那之后,我尝试了—— 编译'org.threeten:threetenbp:1.3.1'
  • 目前,我使用 compile 'org.threeten:threetenbp:1.3.2'

我不知道那行代码有什么问题以及如何修复它。
LocalDate.now()LocalTime.now() 方法应该可以在不指定时区的情况下工作。

最佳答案

对于 Android 项目,您应该使用

implementation 'com.jakewharton.threetenabp:threetenabp:1.0.3'

确保在使用库中的类之前调用​​ AndroidThreeTen.init(this);。这将读取时区数据(包含在库中)。您可以在 onCreate 方法中的 Application 类中初始化库,就像 README 中推荐的那样。 .

关于java - Android 上的 ThreeTen-Backport 错误 - ZoneRulesException : No time-zone data files registered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38281808/

相关文章:

java - SWT:获取 "settings"的系统镜像(cog?)

java - CCAvenue 集成无法正常工作错误 10002

java - 我代码中的 Wait() 和 NotifyAll() 在 for 循环中不起作用

c++ - throw 在 catch 省略号 (...) 中是否会重新抛出 C++ 中的原始错误?

python - 为什么 `asyncio.run()` 在 Python 3.8 中永远不会返回?

exception - Marklogic 插入包含 &fm=1 的简单 url,出现 "invalid entity reference"异常错误

java - 在java中循环语句以获得不同的结果

Android 性能 XML Drawable vs CSS3 vs Images

android - 退格键仅删除 TextField 中的一个字母

java - 如何解决 : The minCompileSdk (31) specified in a dependency's AAR metadata