发布于 1年前

Android threetenabp报错:ZoneRulesException: No time-zone data files registere

在android项目使用ThreeTenABP:

LocalDate today=LocalDate.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)

大概意思是没有找到time zone的文件。

原来是使用ThreeTenABP有误,在使用前调用AndroidThreeTen.init(this)做初始化,初始化时它会加载threetenabp内置的time zone文件。

建议在Application的onCreate做初始化:

@Override public void onCreate() {
  super.onCreate();
  AndroidThreeTen.init(this);
}
©2020 edoou.com   京ICP备16001874号-3