Après la mise BuildTools
à jour vers la version 25.0.0.
compileSdkVersion 25
buildToolsVersion "25"
J'ai un problème avec l'aperçu de la mise en page Android. Maintenant, il affiche une erreur:
Exception levée lors du rendu: impossible de localiser le mode 0
J'ai essayé de nettoyer et reconstruire le projet, mais cela ne fonctionne pas. Avant la mise à jour, tout allait bien.
Je sais que je peux revenir aux versions précédentes de BuildTools
, mais je veux savoir pourquoi cela ne fonctionne pas sur la version 25.0.0
?
On dirait que c'est un problème avec 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
la source
la source
Réponses:
Ce problème a été résolu, mettez à jour la bibliothèque de support pour
la source
C'est un bogue ennuyeux de la version 25 .. Une solution temporaire consiste à rétrograder votre projet,
la source
Une autre solution temporaire consiste à remplacer
<android.support.v7.widget.RecyclerView
par<RecyclerView
pour que vous puissiez voir la vue rendue. Lors de la compilation, remettez-le en<android.support.v7.widget.RecyclerView
la source
C'est un problème de bogue et devrait être corrigé dans la prochaine version de la bibliothèque de conception de support .
Vous devez rétrograder votre version pour les solutions temporaires .
la source
Pour voir un aperçu, j'utilise cette astuce ..... ajouter
app:layoutManager="0"
pour le recyclerView dans une mise en page XMLMais cela lèvera InflateException au moment de l'exécution. Supprimez donc cette propriété du fichier de mise en page XML avant d'exécuter l'application!
la source
En tant que solution temporaire, vous pouvez créer une classe enfant de la vue recycleur et remplacer uniquement onAttachedToWindow comme ci-dessous. Ensuite, utilisez cette classe dans vos mises en page XML
Mise à jour: à partir de la bibliothèque de support 25.0.1, correctif déjà inclus dans la bibliothèque et le problème n'existe plus
la source