DatePicker вызывает исключение, возникающее при рендеринге в LayoutEditor
У меня есть различные макеты, которые используют 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 ответа
Это ошибка, когда Android Studio по неизвестной причине не загружает временные файлы, необходимые для отрисовки макета в "java.io.tmpdir", проблема указана здесь: Android Проблема:63279 Рекомендуемое исправление заключается в обновлении SDK. к новейшей версии (если она еще не установлена), а также применить последний патч Android Studio через "Справка> Проверить наличие обновлений".
Редактировать:
Я нашел это полезным: Справочник по интерфейсу Adroid Pickers, после реализации Date Picker, как описано здесь, ошибка исчезла...
Я не уверен, полезно ли это для вас или нет, но я использую Intellij IDEA и решил эту проблему, добавив следующую строку в файл idea.properties.
android.render.sandbox=false
idea.properties находится в /bin/