日期选择器在布局编辑器中渲染时引发异常

4
我有许多使用DatePicker的布局,突然之间布局编辑器停止工作并显示渲染错误。 如果我关闭自定义视图渲染沙箱,则布局将被正确呈现;但是由于我没有更改任何内容,并且在出现错误之前我不需要关闭渲染沙箱,因此不清楚此问题的原因。
完整的错误堆栈:
Exception raised
during rendering
:
Write access
not allowed

at com(user.timezone)

  
at com
.android.ide.common.rendering.RenderSecurityException.create(RenderSecurityException.java:52)   
at java
.android.ide.common.rendering.RenderSecurityManager.checkPermission(RenderSecurityManager.java:616)   
at com
.util.TimeZone.setDefault(TimeZone.java:713)   
at libcore
.ibm.icu.util.TimeZone.setDefault(TimeZone.java:973)   
at libcore
.icu.DateIntervalFormat_Delegate.createDateIntervalFormat(DateIntervalFormat_Delegate.java:61)   
at libcore
.icu.DateIntervalFormat.createDateIntervalFormat(DateIntervalFormat.java:-1)   
at libcore
.icu.DateIntervalFormat.getFormatter(DateIntervalFormat.java:112)   
at libcore
.icu.DateIntervalFormat.formatDateRange(DateIntervalFormat.java:102)   
at android
.icu.DateIntervalFormat.formatDateRange(DateIntervalFormat.java:71)   
at android
.text.format.DateUtils.formatDateRange(DateUtils.java:826)   
at android
.text.format.DateUtils.formatDateRange(DateUtils.java:651)   
at android
.text.format.DateUtils.formatDateRange(DateUtils.java:628)   
at android
.widget.CalendarView.setMonthDisplayed(CalendarView.java:1258)   
at android
.widget.CalendarView.goTo(CalendarView.java:1131)   
at android
.widget.CalendarView.<init>(CalendarView.java:414)   
at java
.widget.CalendarView.<init>(CalendarView.java:333)   
at android
.lang.reflect.Constructor.newInstance(Constructor.java:408)   
at android
.view.LayoutInflater.createView(LayoutInflater.java:594)   
at android
.view.LayoutInflater.onCreateView(LayoutInflater.java:669)   
at android
.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.inflate(LayoutInflater.java:492)   
at android
.view.LayoutInflater.inflate(LayoutInflater.java:397)   
at android
.widget.DatePicker.<init>(DatePicker.java:175)   
at java
.widget.DatePicker.<init>(DatePicker.java:149)   
at android
.lang.reflect.Constructor.newInstance(Constructor.java:408)   
at android
.view.LayoutInflater.createView(LayoutInflater.java:594)   
at android
.view.LayoutInflater.onCreateView(LayoutInflater.java:669)   
at android
.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)   
at android
.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   
at android
.view.LayoutInflater.rInflate(LayoutInflater.java:727)   
at android
.view.LayoutInflater.inflate(LayoutInflater.java:492)   
Copy stack
during rend
.view.LayoutInflater.inflate(LayoutInflater.java:373)

to clipboardering(user.timezone)Turn off custom view rendering sandbox Write access not allowed during rendering
2个回答

1

我不确定这对你是否有用,但我正在使用Intellij IDEA,并通过在idea.properties文件中添加以下行来解决此问题。

android.render.sandbox=false

idea.properties位于/bin/目录下。


我已经完成了这个任务,但我想知道为什么需要这样做。如果之前也是使用默认沙箱状态并且没有更改过任何内容,那么需要这样做的原因是什么? - Silverstorm

1
这是一个错误,Android Studio由于某种未知原因未能加载绘制布局所需的临时文件“java.io.tmpdir”,该问题在此处列出: Android Issue:63279 建议的解决方法是将SDK更新到最新版本(如果尚未),并通过“帮助>检查更新”应用最新的Android Studio补丁。
编辑:
我发现这很有帮助: Adroid Pickers UI Reference,按照此处描述实施日期选择器后,错误消失了...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接