После обновления BuildTools
до версии 25.0.0.
compileSdkVersion 25
buildToolsVersion "25"
У меня проблема с предварительным просмотром макета Android. Теперь он показывает ошибку:
Исключение при рендеринге: невозможно определить режим 0
Я попытался очистить и восстановить проект, но это не сработало. До обновления все было хорошо.
Я знаю, что могу вернуться к предыдущим версиям BuildTools
, но хочу знать, почему это не работает в версии 25.0.0
?
Похоже, это проблема с RecyclerView
java.lang.IllegalStateException: Unable to locate mode 0
at android.view.DisplayInfo.findMode(DisplayInfo.java:458)
at android.view.DisplayInfo.getMode(DisplayInfo.java:445)
at android.view.Display.getRefreshRate(Display.java:648)
at android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392)
at android.view.View.dispatchAttachedToWindow(View.java:15392)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2953)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$53(RenderTask.java:659)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
android
android-studio
RediOne1
источник
источник
Ответы:
Эта проблема решена, обновите библиотеку поддержки до
compile 'com.android.support:recyclerview-v7:25.0.1' compile 'com.android.support:appcompat-v7:25.0.1' compile 'com.android.support:design:25.0.1'
источник
Это досадная ошибка версии 25. Временное решение - понизить версию вашего проекта,
compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android.support:design:24.2.1' compile 'com.android.support:recyclerview-v7:24.2.1'
источник
Другое временное решение - заменить его
<android.support.v7.widget.RecyclerView
на,<RecyclerView
чтобы вы могли видеть визуализированный вид. При компиляции измените его обратно на<android.support.v7.widget.RecyclerView
источник
Это ошибка, которая должна быть исправлена в будущем выпуске библиотеки поддержки дизайна .
Вам следует перейти на более раннюю версию для Временных решений .
compile 'com.android.support:appcompat-v7:25.0.1' compile 'com.android.support:design:v7:25.0.1' compile 'com.android.support:recyclerview-v7:25.0.1'
источник
Чтобы увидеть предварительный просмотр, я использую этот трюк ... добавляю
app:layoutManager="0"
для recyclerView в XML макетаНо он вызовет InflateException во время выполнения. Поэтому УДАЛИТЕ это свойство из файла макета XML перед запуском приложения!
источник
В качестве временного решения вы можете создать дочерний класс представления ресайклера и переопределить только onAttachedToWindow, как показано ниже. Затем используйте этот класс в своих макетах XML
@Override protected void onAttachedToWindow() { if (!isInEditMode()) { super.onAttachedToWindow(); } }
Обновление: начиная с библиотеки поддержки 25.0.1, исправление уже включено в библиотеку, и проблема больше не существует
источник