Nach dem Update BuildTools
auf Version 25.0.0.
compileSdkVersion 25
buildToolsVersion "25"
Ich habe ein Problem mit der Vorschau des Android-Layouts. Jetzt zeigt es Fehler:
Ausnahme beim Rendern: Modus 0 kann nicht gefunden werden
Ich habe versucht, das Projekt zu bereinigen und neu zu erstellen, aber es funktioniert nicht. Vor dem Update war alles gut.
Ich weiß, dass ich zu früheren Versionen von zurückkehren kann BuildTools
, aber ich möchte wissen, warum es bei Versionen nicht funktioniert 25.0.0
.
Scheint, als wäre es ein Problem mit 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
quelle
quelle
Antworten:
Dieses Problem wurde behoben. Aktualisieren Sie die Support-Bibliothek auf
quelle
Es ist ein ärgerlicher Fehler der Version 25. Eine vorübergehende Lösung besteht darin, Ihr Projekt herunterzustufen.
quelle
Eine andere vorübergehende Lösung ist das Ersetzen
<android.support.v7.widget.RecyclerView
durch,<RecyclerView
damit Sie die gerenderte Ansicht sehen können. Ändern Sie es beim Kompilieren wieder in<android.support.v7.widget.RecyclerView
quelle
Es ist ein Fehlerproblem und sollte in der zukünftigen Version der Support-Design-Bibliothek behoben werden .
Sie sollten Ihre Version für temporäre Lösungen herabstufen .
quelle
Um die Vorschau zu sehen, verwende ich diesen Trick ..... füge
app:layoutManager="0"
für die recyclerView in einem Layout-XML hinzuAber es wird zur Laufzeit InflateException auslösen. So ENTFERNT diese Eigenschaft von XML - Layout - Datei , bevor Sie die App läuft!
quelle
Als temporäre Lösung können Sie eine untergeordnete Klasse der Recycler-Ansicht erstellen und nur onAttachedToWindow wie unten beschrieben überschreiben. Verwenden Sie diese Klasse dann in Ihren XML-Layouts
Update: Ab Supportbibliothek 25.0.1, bereits in der Bibliothek enthaltenes Update und Problem nicht mehr vorhanden
quelle