ConstraintLayout не работает в графическом редакторе Android Studio 3.0-Canary 4


Я сталкиваюсь с проблемами при редактировании макетов, содержащих элемент ConstraintLayout в Android Studio 3.0.

Мои зависимости следующие:

        project.ext.support_library_version = '26.0.0-beta2'

        dependencies {
            compile 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
            compile "com.android.support:palette-v7:${project.ext.support_library_version}"
            compile "com.android.support:support-v13:${project.ext.support_library_version}"
            compile "com.android.support:customtabs:${project.ext.support_library_version}"
            compile "com.android.support:cardview-v7:${project.ext.support_library_version}"
         ...
}

Ошибка, отображаемая в Редакторе пользовательского интерфейса:

The following classes could not be instantiated:
- android.support.constraint.ConstraintLayout (Open Class, Show Exception, Clear Cache)
 Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE.  If this is an unexpected error you can also try to build the project, then manually refresh the layout.

Stacktrace показывает следующее:

java.lang.AssertionError: Entries for a declare-styleable should be after the array declaration.
    at com.android.tools.idea.res.AppResourceRepository.getDeclaredArrayValues(AppResourceRepository.java:634)
    at com.android.tools.idea.res.ResourceClassGenerator.generateStyleable(ResourceClassGenerator.java:249)
    at com.android.tools.idea.res.ResourceClassGenerator.generate(ResourceClassGenerator.java:120)
    at com.android.tools.idea.res.ResourceClassRegistry.findClassDefinition(ResourceClassRegistry.java:102)
    at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:101)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:215)
    at android.support.constraint.ConstraintLayout.init(ConstraintLayout.java:494)
    at android.support.constraint.ConstraintLayout.<init>(ConstraintLayout.java:466)
    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:481)
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264)
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:222)
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:206)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:334)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:382)
    at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:591)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:739)
    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)

Очистка / строительство / аннулирование тайников и т. д. Не помогает. Обратите внимание, что приложение работает отлично, это только редактор пользовательского интерфейса, который больше не работает. Кто сталкивается с той же проблемой или имеет решение для вот это?

1 10

1 ответ:

Есть проблема с библиотекой поддержки 26.0.0-beta2 - вам нужно переключиться обратно на beta 1, чтобы все работало в Android Studio.