android - ConstraintLayout 在 GUI 编辑器 Android Studio 3.0 - Canary 4 中不起作用

标签 android android-support-library android-constraintlayout android-studio-3.0

我在 Android Studio 3.0 中编辑包含 ConstraintLayout 元素的布局时遇到问题。

我的依赖如下:

        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}"
         ...
}

UI 编辑器中显示的错误是:

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.

堆栈跟踪显示如下:

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)

清理/构建/使缓存无效等无济于事。请注意,该应用程序运行良好,只是 UI 编辑器不再工作了。 谁面临同样的问题,或者对此有解决方案?

最佳答案

支持库 26.0.0-beta2 存在问题——您需要切换回 beta 1 才能在 Android Studio 中运行。

关于android - ConstraintLayout 在 GUI 编辑器 Android Studio 3.0 - Canary 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44590531/

相关文章:

javascript - 将 JSON 存储和恢复到此 Ionic 应用程序的最有效方法?

Android ARP清除时间

android - com.android.support :appcompat-v7 and design version 23. 2.0 崩溃包裹错误

java - Android:支持向后兼容

android - ScrollView中的TabHost,选中时滚动到选项卡

android - 如何使用 Robolectric 测试 fragment ?

android - 询问android中正确的支持库

android - 线性布局中的自动调整项目

android - 如何以编程方式访问 ConstraintLayout 中 View 的当前约束?

android - 约束布局中的 Barrier 和 Guideline 有什么区别?