我收到许多错误的种中显示的"主题".这些错误看来是偶尔和我不能再现。从栈我可以了解,这种误差可能会发生对于我的不同的布局的资源。线的XML也各不相同。

任何人都可以解释为什么这个错误?和我能做些什么来解决这个问题?

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------

-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)

这里是结果的XML,但是这样的错误发生在其他xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
    </ViewFlipper>

    <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
        <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>

    </LinearLayout>

    <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />

    <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>               
    </FrameLayout>
</merge>
有帮助吗?

解决方案

膨胀的异常实际上并不是问题,而是实际上来自您布局中的另一个更深层次的问题,然后将其包裹在膨胀结果中。一个常见的问题是试图加载可绘制资源的图像视图时的内存异常。如果其中一种资源具有很高的像素分辨率,则会需要大量的内存,从而膨胀。

因此,基本上验证了您的可绘制图像中的像素分辨率只是您布局所需的最低限度。

其他提示

ViewFlipper 在布局充气期间,将所有图像加载到内存中。因为我的图像很大,所以我替换了很多记忆 ViewFlipperImageSwitcher 可以用动画更改图像 ViewFlipper 但是当时它只加载一个图像。

如果您使用 VectorDrawable 使用支持库并忘记使用 app:srcCompat 代替 android:src

确切的错误是: 二进制XML文件行#xx:错误夸大类图像视图

看到该链接

我知道这个问题已经回答,但是我仍然想到有人遇到了这种问题。

在我的情况下,我将应用程序加载到电话中,该应用程序从res/layout/文件夹中引用布局,以及@dimens的res/values/dimens @dimens的值此处是FONT_22,它是试图访问的,并且在res/values-xlarge中定义了。 /尺寸。

我实际上是在更新现有项目的UI。

我遇到了这个问题,因为我正在使用IDE Eclipse,其中我在为布局文件夹编写XML时ctrl+空间用于提示,它会显示从值以及值 - Xlarge文件夹的所有值,而不管我写的是哪个文件夹。

我还知道,两个文件中的值应该相同以映射到不同的屏幕。

希望这可以帮助某人遇到这种愚蠢的问题。

在仅使用一个构造函数创建自定义视图时,我遇到了相同的错误,请尝试为您的自定义视图定义所有构造函数。

   public CustomWebView(Context context) {
        super(context);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

我遇到了同样的错误,发现根本原因是:

使用应用程序上下文充气视图。

与活动上下文充气修复了错误。

我有这个错误,因为我选择了主题作为材料主题。但是,当我试图在4.4.2上运行应用程序时,它给出了这个错误。

解决方案:选择theme_holo作为主题

我的图片大小只有14kb,但问题是设计师给了我1011px x 1819px(分辨率太高,因此导致intertrateException)

如果有人遇到类似问题,我在夸大观点时也有这样的问题:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

通过更换修复 getApplicationContext()this

这个链接 可能会帮助您。尝试检查清单是否有问题。如果您可以再次发生它,请发布整个堆栈跟踪,以便我们可以看到错误实际上是什么。

编辑:我确定您已经检查了一下,但是您用于旅游布局的XML文件的第12行是什么?

对我而言,错误消息实际上不足以在日志猫中,所以这是我为弄清楚导致问题的原因所做的:

(在日志猫错误消息中,它说该错误是在我的homefragment.java中充气特定布局时发生的)

  1. 我在布局膨胀之前放了一个断点
  2. 我以调试模式运行了应用程序,直到达到特定的断点
  3. 我选择了光标,然后跑了 Evaluate expression 在上面:
    • Run > Evaluate Expression 或者 alt - F8
  4. 结果向我展示了有关问题根源的更多信息,在我的情况下,这是一个可绘制的文件。 tools:targetApi="lollipop" (该错误仅发生在旧设备上)。

我知道这是一个回答的问题,但我看不到我面临的原因。

正是Android Studio将我的Drawables放在 /Drawable-V24中,我的仿真器是API 23.因此,最终找不到它。

解决方案是将所有可绘制的物品移至 /可绘制的文件夹(NO -24)。

您应该将图像文件从“可绘制24”文件夹复制到“可绘制”文件夹。

我遇到了相同的错误,因此我解决了将可抽取物从文件夹绘制的mdpi移动到可绘制的文件夹。我花了一些时间来意识到,因为在Eclipse中,一切都在Android Studio中完美效果,我遇到了这些丑陋的运行时错误。

编辑注意: 如果您要从日食迁移到Android Studio,并且您的项目来自Eclipse,可能会发生,因此请注意,在Android Studio中,与Eclipse有些不同。

就我而言,当我使用该错误 浮动动作按钮 并设置 android:backgroundTint="#000". 。那只是不设置 backgroundTint 解决问题。希望这对您有帮助。

我刚才遇到了这个问题,并设法弄清楚了它是什么。正在引用我的价值的颜色,这引起了问题。因此,将其定义为手动而不是使用下拉建议中的一个。

当我在API LVL 16上运行应用程序时,我遇到了同样的错误(26很好)。那是因为我用过 ?attrr/colorAccent 在我的形状中可以绘制:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="8dp" />

    <solid android:color="@attr/colorAccent" />

</shape>

用常规颜色代替它解决了我的问题。

我遇到了同样的问题,它通过在可绘制文件夹中的图像前用(24)删除可绘制的V24并用普通的可抽签替换它们来解决。

我知道这个线程很旧,但是仍然回答,这样没有人应该度过不眠之夜。

我正在重构一个旧项目,其布局文件都包含硬编码属性,例如 android:maxLength = 500. 。所以我决定在我的res/dimen 文件为 <dimen name="max_length">500</dimen>.

用我的res值完成了将近30个布局文件的重构。你猜怎么着?下次我进行项目时,它开始扔同样 InflateException.

作为解决方案,需要重做我的所有更改,并保持与以前的全部变化相同。

tldr;

步骤1:所有运行良好。

步骤2:为了提高我的维护,我更换了 android:maxLength = 500<dimen name="max_length">500</dimen>android:maxLength = @dimen/max_length ,这就是一切出错的地方(崩溃了 InflateException).

步骤3:所有运行不好

步骤4:再次更换我的所有工作 android:maxLength = @dimen/max_lengthandroid:maxLength = 500任何东西都固定了。

步骤5:所有运行良好。

我发现了同样的错误,并且花了两天时间来确定错误是什么。

错误仅仅是因为我试图使用一个: android:background

而不是: app:srcCompat

在SVG文件中。

就您而言,我相信这就是

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />

我建议这样使用

<androidx.appcompat.widget.AppCompatImageView  <-- use **AppCompatImageView** not **ImageView**
        android:scaleType="fitXY" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:srcCompat="@drawable/tour_11"
     />

我希望这有帮助。

我也面临着类似的问题。虽然对于任何人这可能是一个问题的各种不好的惯例,在代码如

  1. 错误的布局签XML
  2. 装载沉重的资源直接进入图片视图导致 OOM
  3. 问题与使用的风格。

一个最被忽视的因素可能是 使用正确的上下文 而膨胀的意见。请确认您不用 其中一项活动方面是必需的。同时, 可能没有结束,错误总是,但是这取决于你的观层次,它可能是至关重要的。

我解决我的问题有一个坏的背景下(使用 而不是的 活动 在短短的4天!因此尝试,如果该解决了。编码快乐!!

我遇到了同样的问题,我在XML中使用了视图标签,而不是视图。更换查看类解决了问题。

希望它也为您提供帮助。

我们需要检查API版本。我曾经给我的背景颜色 LinearLayout 喜欢

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/as_royalblue"
        android:orientation="vertical"></LinearLayout>

可以肯定的是我有相同的错误, as_royalblue.xml 里面 drawable 文件夹

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="@color/royalblue_s"
        android:startColor="@color/royalblue_e" />
</shape>

以及我如何修复它, ,实际上似乎API问题,因此我们需要检查API级别是否在API 24上方,因此我们能够使用自己喜欢的方式。但是,如果不到24岁,我们需要避免使用,Juts会产生正常的颜色或一种颜色,而不是颜色渐变混合的混合物。

fun checkAPI_N(): Boolean {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
            return true
        else
            return false
    }

将ID给您的线度延迟,并设置背景,如果可以的话

 if(UtilKotlin.checkAPI_N()){
            linlay_act_menu_container.setBackgroundResource(R.drawable.a_6)
            linlay_act_menu_logo.setBackgroundResource(R.drawable.as_strain)
        }else {//todo normal color background setting}

在我的情况下,我已经指定了我在布局文件中使用的库UI组件的完整软件包名称。

对我来说,这是因为我尝试将XML矢量图形图像与普通png混合在同一布局文件中,

只有在我用png替换XML矢量图形后,才开始工作

  • 我只是解决此问题只是从可绘制的(v24)中删除您的图像,然后将其粘贴到可绘制的文件夹中,这对我有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top