NoSuchFieldError:BoxInsetLayout

Posted

技术标签:

【中文标题】NoSuchFieldError:BoxInsetLayout【英文标题】:NoSuchFieldError: BoxInsetLayout 【发布时间】:2018-03-17 07:11:09 【问题描述】:

我正在尝试创建 BoxInsetLayout,当开始设置 FrameLayout 时,出现错误。

java.lang.NoSuchFieldError: BoxInsetLayout_Layout_boxedEdges at android.support.wear.widget.BoxInsetLayout$LayoutParams.(BoxInsetLayout.java:450) 在 android.support.wear.widget.BoxInsetLayout.generateLayoutParams(BoxInsetLayout.java:142) 在 android.support.wear.widget.BoxInsetLayout.generateLayoutParams(BoxInsetLayout.java:47) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:860) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:518) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:397) 在 com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) 在 com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) 在 com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368) 在 com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567) 在 com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549) 在 com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549) 在 com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680) 在 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) 在 java.lang.Thread.run(Thread.java:745)

代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.wear.widget.BoxInsetLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:padding="15dp">

    <FrameLayout
        android:layout_
        android:layout_
        android:padding="5dp"
        app:boxedEdges="all">


        <TextView
            android:gravity="center"
            android:layout_
            android:layout_
            android:text="@string/app_name"
            android:textColor="@color/black" />

    </FrameLayout>

</android.support.wear.widget.BoxInsetLayout>

【问题讨论】:

您是否检查过这篇文章的要求:developer.android.com/training/wearables/apps/creating.html 【参考方案1】:

我在使用android.support.wear.widget.BoxInsetLayout 时遇到同样的错误,但是当我切换到已弃用的android.support.wearable.view.BoxInsetLayout 时,渲染错误就会消失。我认为每次您尝试将子项添加到 BoxInsetLayout 时,都会出现相同的渲染错误。

如果您找到使用新 BoxInsetLayout 解决此错误的方法,请在此处分享解决方案。

【讨论】:

您可能希望将此作为评论而不是答案重新发布,因为它并不能真正算作问题的答案。 感谢您的建议是对的,但我还不能对问题发表评论,因为我没有足够的声誉。我只是想分享我是如何解决渲染问题的,尽管不是通过使用同一个库。至少我可以在不运行应用程序的情况下看到屏幕。

以上是关于NoSuchFieldError:BoxInsetLayout的主要内容,如果未能解决你的问题,请参考以下文章

获取 java.lang.NoSuchFieldError: RamlValidationService 中的值

春天:java.lang.NoSuchFieldError:IMPORT_BEAN_NAME_GENERATOR

java.lang.NoSuchFieldError:INSTANCE

java.lang.NoSuchFieldError: TRACE

线程“主”java.lang.NoSuchFieldError 中的异常:如果可能

Hibernate java.lang.NoSuchFieldError: INSTANCE