【问题标题】:exception raised during rendering:Binary XML file line #-1:error inflating class<unknown>呈现期间引发的异常:二进制 XML 文件行 #-1:error inflating class<unknown>
【发布时间】:2016-11-27 09:37:46
【问题描述】:

我尝试在布局中包含复选框,拖放后出现此错误:

渲染期间引发异常:二进制 XML 文件行 #-1:错误 膨胀class&lt;unknown&gt;

xml 文件:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nidhigupta.shopping2.MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:id="@+id/textView" />

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New CheckBox"
    android:id="@+id/checkBox"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

</RelativeLayout>

请提供分步解决方案。

详情链接说:

java.lang.NoSuchMethodError: android.graphics.drawable.VectorDrawable_Delegate.nCreateTreeFromCopy(JJ)J
at android.graphics.drawable.VectorDrawable.nCreateTreeFromCopy(VectorDrawable.java)
at android.graphics.drawable.VectorDrawable.access$400(VectorDrawable.java:204)
at android.graphics.drawable.VectorDrawable$VectorDrawableState.createNativeTreeFromCopy(VectorDrawable.java:837)
at android.graphics.drawable.VectorDrawable$VectorDrawableState.<init>(VectorDrawable.java:812)
at android.graphics.drawable.VectorDrawable.mutate(VectorDrawable.java:268)
at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:817)
at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:329)
at android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState.addStateSet(AnimatedStateListDrawable.java:602)
at android.graphics.drawable.AnimatedStateListDrawable.parseItem(AnimatedStateListDrawable.java:525)
at android.graphics.drawable.AnimatedStateListDrawable.inflateChildElements(AnimatedStateListDrawable.java:453)
at android.graphics.drawable.AnimatedStateListDrawable.inflate(AnimatedStateListDrawable.java:385)
at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1224)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1197)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:315)
at android.content.res.BridgeTypedArray.getDrawable(BridgeTypedArray.java:681)
at android.widget.CompoundButton.<init>(CompoundButton.java:89)
at android.widget.CheckBox.<init>(CheckBox.java:70)
at android.widget.CheckBox.<init>(CheckBox.java:66)
at android.widget.CheckBox.<init>(CheckBox.java:62)
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 android.view.LayoutInflater.createView(LayoutInflater.java:645)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:107)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:149)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:317)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:520)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:508)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:967)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:508)
at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:75)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:620)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:617)
at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:371)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:617)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:639)
at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7.run(AndroidDesignerEditorPanel.java:519)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)

【问题讨论】:

  • 点击“详细信息”链接,它说什么?错误出现在 XML 的第一行。
  • 请查看我包含的已编辑帖子。 @cricket_007
  • 有趣的是,只有 SDK=24 才会发生错误...如果您有其他版本的 SDK,您可以选择它,错误已消失(尝试更改...只需单击设备预览正上方的 API 24 按钮)
  • 是的,我建议使用较低(稳定)的 API 进行渲染。
  • 非常感谢..它工作了..:)@cricket_007 @Guillherme P

标签: android android-layout android-fragments


【解决方案1】:

2016 年 9 月更新

问题在 Android Studio v2.2 上不再重现。更新您的 Android Studio,问题将不再重现。

2016 年 8 月更新

Android Studio v2.1.3 中仍然存在问题

原答案

这似乎是一个问题,它正在由谷歌HERE处理:

其他一些人也面临同样的问题,解决方法总是将预览 API 从 24 更改为 23(或任何其他版本)。

您可能需要下载以前版本的 SDK。您无需更改 build.gradle...只需下载 SDK,Android Studio 将允许您更改 SDK在布局预览中

【讨论】:

  • 我自己也有同样的问题。感谢您的回答!
  • 这里也发生了。 iOS > Android
  • 使用 API 23 或更低版本“修复问题”。如果我尝试为具有 API 15 或更低版本的 Android 定义 &lt;meta-data ...&gt; 以在操作栏上有一个“返回”按钮,我只想添加这种情况。如果我删除这个&lt;meta-data ...&gt;,渲染就会顺利进行。我会将我的 AS 更新到 2.2 版,看看它是否会在我的 *nix 发行版的包维护者发布它(主要稳定分支)后立即解决问题。
  • 我的意思是,将其添加到我的AndroidManifest.xml。当然,要考虑适当的活动。
【解决方案2】:

与渲染问题相关的问题已解决 Check out the Answer here

android studio 自动选择 APick B默认设置

所以你必须手动选择前一个API 23

【讨论】:

    【解决方案3】:

    我有类似的问题,并通过在 xml 文件中管理可绘制对象的像素大小和控件的宽度高度来解决它。请不要在 xml 文件中添加任何在 class 文件中没有使用的控件。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题。我通过减小可绘制文件夹中图像的大小来解决它。

      【讨论】:

        【解决方案5】:

        我已按照建议选择了以前的版本,但仍然没有看到以前的图像。

        我做的是这样的:

        1. 在版本列表中选择了“以前的版本”和“Preview Androids Versions”。

        2. 一旦屏幕出现较早版本的 android,我单击之前版本之一并拖动没有图像的图像布局。

        对我来说效果很好,我希望并为他们服务。我们正在阅读。

        【讨论】:

          【解决方案6】:

          虽然 API 25 在我的系统上可用,但我使用的是 API 22。

          在不同的拆分视图之间移动有问题的选项卡一秒钟就可以解决问题。

          【讨论】:

            【解决方案7】:

            我之前遇到过这个异常,对我有用的是 File -> Invalidate Caches/Restart。

            你可以试试,但你应该知道所有的本地历史都会被删除。

            编辑:从 API 24 降级到 API 23 也可以。

            【讨论】:

              【解决方案8】:

              您可以尝试更改 AppTheme。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-01-07
                • 1970-01-01
                • 1970-01-01
                • 2013-04-25
                • 2015-12-21
                • 2011-05-29
                • 1970-01-01
                相关资源
                最近更新 更多