programacion - manual android studio avanzado
Excepción provocada durante el renderizado: no se puede ubicar el modo 0 (6)
Después de actualizar
BuildTools
a la versión 25.0.0.
compileSdkVersion 25
buildToolsVersion "25"
Tengo un problema con la vista previa del diseño de Android. Ahora muestra error:
Excepción provocada durante el renderizado: no se puede ubicar el modo 0
Intenté limpiar y reconstruir el proyecto, pero no funciona. Antes de actualizar todo estaba bien.
Sé que puedo volver a las versiones anteriores de
BuildTools
, pero quiero saber por qué no funciona en la versión
25.0.0
.
Parece que es un problema con
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)
La biblioteca de soporte de Android proporciona funciones de utilidad compatibles con versiones anteriores. Las aplicaciones pueden usar estas funciones de utilidad para proporcionar una experiencia de usuario adecuada en una amplia gama de versiones del sistema Android.
Es un problema de bug y debería solucionarse en el futuro Lanzamiento de la biblioteca de diseño de soporte .
Debería degradar su versión para Soluciones temporales .
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''
Como solución temporal, puede crear una clase secundaria de vista de reciclador y anular solo enAttachedToWindow como se muestra a continuación. Luego use esta clase en sus diseños XML
@Override
protected void onAttachedToWindow() {
if (!isInEditMode()) {
super.onAttachedToWindow();
}
}
Actualización: a partir de la biblioteca de soporte 25.0.1, la corrección ya está incluida en la biblioteca y el problema ya no existe
Es un error molesto de la versión 25 .. Una solución temporal es degradar su proyecto,
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''
Este issue se ha resuelto, actualice la biblioteca de soporte a
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''
Otra solución temporal es reemplazar
<android.support.v7.widget.RecyclerView
con
<RecyclerView
para que pueda ver la Vista renderizada.
Al compilar, cámbielo nuevamente a
<android.support.v7.widget.RecyclerView
Para ver la vista previa, utilizo este truco ..... agregue la
app:layoutManager="0"
para el recyclerView en un diseño XML
Pero arrojará InflateException en tiempo de ejecución. ¡ Elimine esta propiedad del archivo de diseño XML antes de ejecutar la aplicación!