Exceção levantada durante a renderização: não é possível localizar o modo 0


91

Após a atualização BuildToolspara a versão 25.0.0.

compileSdkVersion 25
buildToolsVersion "25"

Tenho problemas com a visualização do layout do Android. Agora mostra o erro:

Exceção levantada durante a renderização: não é possível localizar o modo 0

insira a descrição da imagem aqui

Tentei limpar e reconstruir o projeto, mas não funcionou. Antes da atualização estava tudo bem.

Eu sei que posso voltar para as versões anteriores BuildTools, mas quero saber por que não funciona na versão 25.0.0?


Parece que é um problema com 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)

15
Parece um bug com 25.0.0. Abri um problema para ele: code.google.com/p/android/issues/…
Amagi82

2
Tenho o mesmo problema com compileSdkVersion 24 / buildToolsVersion "24.0.2" - no entanto, deixei o Android Studio fazer uma atualização (de várias coisas, essencialmente o que quer que ele pedisse para atualizar) ontem, e acredito que foi quebrado depois disso.
Steven Craft,

1
@HenriquedeSousa Problema que surge quando en.wikipedia.org/wiki/Andy_Rubin saiu de #Google
IntelliJ Amiya

Respostas:


111

Este problema foi resolvido, atualize a biblioteca de suporte para

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'

62

É um bug irritante da versão 25 .. Uma solução temporária é fazer o downgrade do seu projeto,

 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'

18

Outra solução temporária é substituir <android.support.v7.widget.RecyclerViewpor <RecyclerViewpara que você possa ver a vista renderizada. Ao compilar, mude de volta para<android.support.v7.widget.RecyclerView


7

A Android Support Library fornece funções de utilitário compatíveis com versões anteriores. Os aplicativos podem usar essas funções de utilitário para fornecer uma experiência de usuário apropriada em uma ampla gama de versões do sistema Android.

É um problema de bug e deve ser corrigido na versão futura da biblioteca de design de suporte .

Você deve fazer o downgrade de sua versão para Soluções Temporárias .

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' 

6

Para ver a visualização, eu uso este truque ..... adicione app:layoutManager="0"para o recyclerView em um layout XML

Mas ele lançará InflateException em tempo de execução. Portanto, REMOVA essa propriedade do arquivo de layout XML antes de executar o aplicativo!


4

Como solução temporária, você pode criar uma classe filha da visualização do reciclador e substituir apenas emAttachedToWindow conforme abaixo. Em seguida, use esta classe em seus layouts XML

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

Atualização: a partir da biblioteca de suporte 25.0.1, correção já incluída na biblioteca e o problema não existe mais

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.