Mohammad Javad
Mohammad Javad

Reputation: 584

Render layout preview failed in android studio

I'm using Android Studio 2.3.3 - Build #AI-162.4069837 and my build.gradle dependency block is :

compile 'com.android.support:support-v4:26.0.0-alpha1'
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
compile 'com.android.support:support-vector-drawable:26.0.0-alpha1'
compile 'com.android.support:animated-vector-drawable:26.0.0-alpha1'

When I try to preview layout in design mode, the view does not render in all layouts that use android.support.design.widget.CoordinatorLayout and android.support.v7.widget.RecyclerView or ... give the following error-

the following classes could not be instantiated

I did clean and rebuild project, clear cache, close and reopen Android Studio, but did not solve the problem.

java.lang.NoSuchFieldError: ViewBackgroundHelper
    at android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.java:46)
    at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:63)
    at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:56)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:475)
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:262)
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:213)
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at com.android.layoutlib.bridge.bars.CustomBar.<init>(CustomBar.java:95)
    at com.android.layoutlib.bridge.bars.NavigationBar.<init>(NavigationBar.java:52)
    at com.android.layoutlib.bridge.bars.NavigationBar.<init>(NavigationBar.java:46)
    at com.android.layoutlib.bridge.impl.Layout.createNavBar(Layout.java:284)
    at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:140)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:301)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680)
    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)

Upvotes: 1

Views: 1615

Answers (2)

gordonpassy
gordonpassy

Reputation: 114

Changing the theme from Theme.AppCompat.Light.DarkActionBar to Base.Theme.AppCompat.Light.DarkActionBar in styles.xml has worked for me.

Upvotes: 0

sziraqui
sziraqui

Reputation: 6112

Change your project level build.gradle dependency to this

classpath 'com.android.tools.build:gradle:2.3.3'

And replace your app level gradle dependencies with these versions

compile 'com.android.support:support-v4:26.+'
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:design:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:support-vector-drawable:26.+'
compile 'com.android.support:animated-vector-drawable:26.+'

This answer might be related to your problem

Edit: Seems you are not alone. In this and this post, the solution was to wait for next update or disable cache in gradle.properties Some people have rolled back to stable gradle and support library versions as a temporary solution.

Upvotes: 1

Related Questions