Ausnahme beim Rendern: Modus 0 kann nicht gefunden werden

91

Nach dem Update BuildToolsauf 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

Geben Sie hier die Bildbeschreibung ein

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)
RediOne1
quelle
15
Sieht aus wie ein Fehler mit 25.0.0. Ich habe ein Problem dafür geöffnet: code.google.com/p/android/issues/…
Amagi82
2
Ich habe das gleiche Problem mit compileSdkVersion 24 / buildToolsVersion "24.0.2" - aber ich habe Android Studio gestern ein Update (von verschiedenen Dingen, im Wesentlichen was auch immer es verlangt hat) durchführen lassen, und ich glaube, es war danach kaputt.
Steven Craft
1
@ HenriquedeSousa Problem, das auftritt, wenn en.wikipedia.org/wiki/Andy_Rubin #Google
IntelliJ Amiya

Antworten:

111

Dieses Problem wurde behoben. Aktualisieren Sie die Support-Bibliothek auf

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'
Furqan
quelle
62

Es ist ein ärgerlicher Fehler der Version 25. Eine vorübergehende Lösung besteht darin, Ihr Projekt herunterzustufen.

 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'
XcodeNOOB
quelle
18

Eine andere vorübergehende Lösung ist das Ersetzen <android.support.v7.widget.RecyclerViewdurch, <RecyclerViewdamit Sie die gerenderte Ansicht sehen können. Ändern Sie es beim Kompilieren wieder in<android.support.v7.widget.RecyclerView

Hibbem
quelle
7

Die Android Support Library bietet abwärtskompatible Dienstprogrammfunktionen. Apps können diese Dienstprogrammfunktionen verwenden, um eine angemessene Benutzererfahrung für eine Vielzahl von Android-Systemversionen bereitzustellen.

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 .

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' 
IntelliJ Amiya
quelle
6

Um die Vorschau zu sehen, verwende ich diesen Trick ..... füge app:layoutManager="0"für die recyclerView in einem Layout-XML hinzu

Aber es wird zur Laufzeit InflateException auslösen. So ENTFERNT diese Eigenschaft von XML - Layout - Datei , bevor Sie die App läuft!

Zohab Ali
quelle
4

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

@Override
protected void onAttachedToWindow() {
    if (!isInEditMode()) {
        super.onAttachedToWindow();
    }
}

Update: Ab Supportbibliothek 25.0.1, bereits in der Bibliothek enthaltenes Update und Problem nicht mehr vorhanden

Sameh Mikhail
quelle