Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio 3.0-布局预览TimeoutException_Android_Android Layout_Android Studio 3.0_Android Fonts_Timeoutexception - Fatal编程技术网

Android Studio 3.0-布局预览TimeoutException

Android Studio 3.0-布局预览TimeoutException,android,android-layout,android-studio-3.0,android-fonts,timeoutexception,Android,Android Layout,Android Studio 3.0,Android Fonts,Timeoutexception,已经有一段时间了,我的多个项目中的每个布局文件在第一次打开时都没有正确呈现。 AndroidStudio 3.0显示的异常为(完整堆栈跟踪): java.util.concurrent.TimeoutException:预览在呈现布局时超时。 当其中一个自定义视图中存在无限循环或无限递归时,通常会发生这种情况。 位于org.kxml2.io.KXmlParser.next(未知源) 位于com.android.tools.idea.rendering.LayoutlibCallbackImpl$

已经有一段时间了,我的多个项目中的每个布局文件在第一次打开时都没有正确呈现。 AndroidStudio 3.0显示的异常为(完整堆栈跟踪):

java.util.concurrent.TimeoutException:预览在呈现布局时超时。
当其中一个自定义视图中存在无限循环或无限递归时,通常会发生这种情况。
位于org.kxml2.io.KXmlParser.next(未知源)
位于com.android.tools.idea.rendering.LayoutlibCallbackImpl$NamedParser.next(LayoutlibCallbackImpl.java:855)
位于com.android.layoutlib.bridge.android.BridgeXmlBlockParser.next(BridgeXmlBlockParser.java:302)
位于android.content.res.FontResourcesParser.skip(FontResourcesParser.java:220)
位于android.content.res.FontResourcesParser.readFamily(FontResourcesParser.java:154)
位于android.content.res.FontResourcesParser.readFamilies(FontResourcesParser.java:135)
位于android.content.res.FontResourcesParser.parse(FontResourcesParser.java:126)
位于com.android.layoutlib.bridge.impl.resourceheloper.getFont(resourceheloper.java:424)
位于com.android.layoutlib.bridge.impl.resourceheloper.getFont(resourceheloper.java:454)
位于android.content.res.BridgeTypedArray.getFont(BridgeTypedArray.java:735)
位于android.widget.TextView.readTextAppearance(TextView.java:3369)
在android.widget.TextView。(TextView.java:919)
位于android.widget.TextView。(TextView.java:832)
位于android.support.v7.widget.AppCompatTextView。(AppCompatTextView.java:75)
位于android.support.v7.widget.AppCompatTextView。(AppCompatTextView.java:71)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481)
位于org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:252)
位于org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:215)
在com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:218)上
在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:336)中
在android.view.BridgeInflater.onCreateView(BridgeInflater.java:155)中
位于android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:225)中
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
位于android.view.LayoutInflater.rInflate_的原始版本(LayoutInflater.java:863)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:72)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
位于android.view.LayoutInflater.rInflate_的原始版本(LayoutInflater.java:866)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:72)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
位于android.view.LayoutInflater.rInflate_的原始版本(LayoutInflater.java:866)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:72)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
在android.view.LayoutInflater.充气(LayoutInflater.java:515)
在android.view.LayoutInflater.inflate(LayoutInflater.java:394)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)上
位于com.android.layoutlib.bridge.bridge.createSession(bridge.java:384)
位于com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
位于com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:547)
在com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:681)
位于com.android.tools.idea.rendering.RenderTask$$Lambda$2201/612657191.call(未知源)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
由于找不到合适的解决方案,我决定把这个问题贴出来。 有人知道发生了什么吗

从stacktrace中,我发现这个问题与xml文件中的新字体管理有关。。。 我的项目是在新的api 26之前编写的,与其他许多开发人员一样,我使用了存储在assets文件夹中的自定义字体。我的布局仍然充满了“旧方式”。 相反,我正在使用更简单的“新方式”进行新布局,使用
可下载字体声明
fontFamily
属性。而且一切都很好

这种共存会是我的问题吗

找到的唯一解决方案是每次AndroidStudio时使无效并重新启动。 但肯定有另一种方式,以及发生这种情况的原因

编辑日期:11-29-2017 这一问题在两天前再次出现,现在,即使是唯一的解决方法(选项
使缓存失效并重新启动
)也不再有效

也许这几天也有同样的问题出现在其他人身上?
试图完全在黑暗中创建布局并不有趣……

这是否会同时发生在两种布局(“旧方式”和“新方式”)中?当你说“失效并重新启动”时,你说的“我”是什么意思
    java.util.concurrent.TimeoutException: Preview timed out while rendering the layout.
This typically happens when there is an infinite loop or unbounded recursion in one of the custom views.
    at org.kxml2.io.KXmlParser.next(Unknown Source)
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl$NamedParser.next(LayoutlibCallbackImpl.java:855)
    at com.android.layoutlib.bridge.android.BridgeXmlBlockParser.next(BridgeXmlBlockParser.java:302)
    at android.content.res.FontResourcesParser.skip(FontResourcesParser.java:220)
    at android.content.res.FontResourcesParser.readFamily(FontResourcesParser.java:154)
    at android.content.res.FontResourcesParser.readFamilies(FontResourcesParser.java:135)
    at android.content.res.FontResourcesParser.parse(FontResourcesParser.java:126)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getFont(ResourceHelper.java:424)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getFont(ResourceHelper.java:454)
    at android.content.res.BridgeTypedArray.getFont(BridgeTypedArray.java:735)
    at android.widget.TextView.readTextAppearance(TextView.java:3369)
    at android.widget.TextView.<init>(TextView.java:919)
    at android.widget.TextView.<init>(TextView.java:832)
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:75)
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:71)
    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:252)
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:215)
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:218)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:336)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:155)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:225)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    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 com.android.tools.idea.rendering.RenderTask$$Lambda$2201/612657191.call(Unknown Source)
    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)