代码之家  ›  专栏  ›  技术社区  ›  chrisonline

Layout Edtior未显示工具栏-NegativeArraySizeException

  •  0
  • chrisonline  · 技术社区  · 7 年前

    在手机和emulator上一切正常,但我无法在Android Studio中使用布局编辑器,因为我遇到以下错误:

    无法实例化以下类:

    • android支持。v7.widget。工具栏(打开类、显示异常、清除缓存)

    我在另一个布局中使用ConstraintLayout时也会得到同样的结果。

    异常详细信息:

    java.lang.NegativeArraySizeException
        at android.support.v7.appcompat.R$styleable.<clinit>(Unknown Source)
        at android.support.v7.widget.Toolbar.<init>(Toolbar.java:235)
        at android.support.v7.widget.Toolbar.<init>(Toolbar.java:228)
        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:211)
        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:730)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
        at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)
        at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384)
        at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
        at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:547)
        at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:681)
        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)
    

    想象一下它的样子:
    enter image description here

    工具栏的我的布局XML:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="?attr/toolbarTheme"
        app:popupTheme="?attr/toolbarPopupTheme"/>
    

    “支持库”的渐变:

    // Support Library  
    implementation "com.android.support:support-core-utils:${supportLibVersion}"
    implementation "com.android.support:appcompat-v7:${supportLibVersion}"
    implementation "com.android.support:gridlayout-v7:${supportLibVersion}"
    implementation "com.android.support:cardview-v7:${supportLibVersion}"
    implementation "com.android.support:design:${supportLibVersion}"
    implementation "com.android.support:recyclerview-v7:${supportLibVersion}"
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    

    supportLibVersion='27.0.2'

    我使用Android Studio版本 3.0.1 !

    我在其他StackOverflow线程中已经做了哪些工作并发现了哪些问题:
    -无效缓存并重新启动
    -清理项目和重建项目
    -我使用的主题从父级“Theme.AppCompat”更改为“Base.Theme.AppCompat”

    1 回复  |  直到 7 年前
        1
  •  0
  •   chrisonline    7 年前

    问题:
    布局编辑器似乎有一些问题 太多了 一个属性 <declare-stylable> 在中定义的标记 属性。xml !

    解决方案:
    我有 49 一个属性 <声明可设置样式(>); 标签
    如果我删除 5. 属性,所以我有 45 ,布局编辑器正在工作。

    我还在Google Issue Tracker上添加了一个问题:
    https://issuetracker.google.com/issues/71641021

    谷歌问题更新:
    Android Studio 3.1版本已经修复了这一问题。