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);
}