使用 android :entries ="@array/some_array" used 微调器时 Android Studio 0.3.6 呈现问题

标签 android android-layout android-studio android-spinner rendering-engine

我在 Android Studio 0.3.6 中遇到一个呈现问题错误,当我设计一个包含微调器的布局时,它的条目已定义:

enter image description here

导致问题的条目是:android:entries="@array/gender"

删除它,布局呈现得很好:

enter image description here

位于 values 中的 gender.xml 包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="gender">
        <item>Male</item>
        <item>Female</item>
    </string-array>

</resources> 

我怀疑这是 Android Studio 中的错误,因为代码编译得很好。

渲染错误栈:

java.lang.AssertionError: Already disposed
    at com.intellij.openapi.components.impl.ComponentManagerImpl.getPicoContainer(ComponentManagerImpl.java:263)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.getPicoContainer(ComponentManagerImpl.java:55)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:40)
    at com.intellij.openapi.roots.impl.DirectoryIndex.getInstance(DirectoryIndex.java:31)
    at org.jetbrains.android.dom.AndroidXmlExtension.isAvailable(AndroidXmlExtension.java:52)
    at com.intellij.xml.XmlExtension.getExtension(XmlExtension.java:48)
    at com.intellij.xml.XmlExtension.getExtensionByElement(XmlExtension.java:59)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.computeNamespaceMap(XmlTagImpl.java:893)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.initNamespaceMaps(XmlTagImpl.java:857)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.getAttributeValue(XmlTagImpl.java:631)
    at com.android.tools.idea.rendering.PsiResourceItem$1.getDefaultIndex(PsiResourceItem.java:160)
    at com.android.ide.common.rendering.api.ArrayResourceValue.getValue(ArrayResourceValue.java:95)
    at com.android.ide.common.resources.ResourceResolver.resolveResValue(ResourceResolver.java:272)
    at com.android.ide.common.resources.ResourceResolver.resolveResValue(ResourceResolver.java:263)
    at com.android.ide.common.resources.ResourceResolver.resolveValue(ResourceResolver.java:258)
    at com.android.layoutlib.bridge.android.BridgeContext.obtainStyledAttributes(BridgeContext.java:705)
    at android.widget.AbsSpinner.<init>(AbsSpinner.java:71)
    at android.widget.Spinner.<init>(Spinner.java:165)
    at android.widget.Spinner.<init>(Spinner.java:144)
    at android.widget.Spinner.<init>(Spinner.java:128)
    at sun.reflect.GeneratedConstructorAccessor593.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at android.view.LayoutInflater.createView(LayoutInflater.java:594)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:86)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:131)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:373)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:542)
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:535)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:934)
    at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:535)
    at com.android.tools.idea.rendering.RenderService.render(RenderService.java:577)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.compute(AndroidLayoutPreviewToolWindowManager.java:577)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.compute(AndroidLayoutPreviewToolWindowManager.java:570)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:945)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:570)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:83)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6$1.run(AndroidLayoutPreviewToolWindowManager.java:518)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
    at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6.run(AndroidLayoutPreviewToolWindowManager.java:513)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
    at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:297)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

最佳答案

我遇到了同样的问题并找到了解决方法: 单击 File->Invalidate Caches/Restart... 将返回 UI 预览窗口。

关于使用 android :entries ="@array/some_array" used 微调器时 Android Studio 0.3.6 呈现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351726/

相关文章:

android - Android Studio 错误 : Cannot launch AVD in emulator

java - webview中的网页是空白的

android - 如何引用阶段?使用 flex for Facebook actionscript 移动 API 登录方法

java - Android - 清除 Intent

android - 水平使用带有两个 textView 的 ellipsize 而不裁剪第二个

安卓设计库 : SwipeRefreshLayout don't detect swipe over CollapsingToolbarLayout

android - 打开数字键盘而不强制 EditText 仅为数字

布局文件中的Android屏幕方向

Android Studio 0.4.0 + ABSherlock + gradle 没有 "import module"

android - 找不到类 databinding.FragmentBinding