android.view.InflateException:二进制XML文件行#12:错误膨胀类<unknown>

Sol*_*vek 140 xml resources android android-inflate

我收到了很多在subj中显示的类型的错误.这些错误似乎是偶然的,我无法重现它们.从堆栈我可以了解到我的不同布局资源可能会出现这样的错误.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)
Run Code Online (Sandbox Code Playgroud)

这是XML的结果,但是在其他xmls中会发生此类错误

<?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>
Run Code Online (Sandbox Code Playgroud)

vnp*_*noy 261

膨胀异常实际上并不是问题,但实际上来自布局中的另一个更深层次的问题,然后将其包装在InflateException中.一个常见问题是在尝试加载加载可绘制资源的imageview时出现内存不足异常.如果其中一个资源具有较高的像素分辨率,则需要大量内存才会导致膨胀异常.

因此,基本上验证drawables图像中的像素分辨率只是布局所需的最小值.

  • @vnportnoy我删除图片时也有同样的错误 (4认同)
  • 我相信我的申请中没有任何可绘制的内容 (4认同)
  • 尝试检查您的语言包,可能缺少字符串资源。就我而言,这引起了一个问题。 (2认同)

Sol*_*vek 24

ViewFlipper在布局膨胀期间将所有图像加载到内存中.因为我的图像很大,需要很多内存,我ViewFlipperImageSwitcher它取而代之的是可以用动画改变图像,ViewFlipper但是当时只加载一个图像.


luj*_*jop 23

如果您使用VectorDrawable使用支持库并忘记使用app:srcCompat而不是使用,也会发生这种情况android:src

确切的错误是: 二进制XML文件行#XX:错误膨胀类ImageView

看到那个链接


Mob*_*ist 11

我知道这个问题已经得到了回答,但我仍然认为有人会遇到这类问题.

在我的情况下问题是我正在将我的应用程序加载到手机,它从res/layout /文件夹中引用布局,并从res/values/dimens引用@dimens的值,这是它尝试访问的font_22,它在res/values-xlarge中定义/梦诗.

我实际上正在更新现有项目的UI.

我遇到了这个问题,因为我正在使用IDE Eclipse,我在ctrl + space中提示提示,同时为布局文件夹编写xml,它显示值和值-xlarge文件夹中的所有值,无论我写的是哪个文件夹.

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

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


Wil*_*lis 9

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

   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();
    }
Run Code Online (Sandbox Code Playgroud)


Wil*_*pes 8

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

错误只是因为我试图使用: 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 !
 />
Run Code Online (Sandbox Code Playgroud)

我建议以这种方式使用它

将此添加到您的build.gradle应用程序中

android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }
Run Code Online (Sandbox Code Playgroud)

<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"
     />
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。


小智 5

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


小智 5

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

使用应用程序上下文来扩大视图。

使用Activity Context进行膨胀修复了该错误。


Lak*_*lon 5

我遇到此错误是因为我选择了主题作为“材质”主题。但是当我尝试在4.4.2上运行应用程序时,出现了此错误。

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


Jul*_*nma 5

对我来说,日志猫中的错误消息实际上是不够的,所以我做了以下工作来找出导致问题的原因:

(在 log cat 错误消息中,它说在我的 HomeFragment.java 中膨胀特定布局时发生错误)

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


hed*_*sam 5

万一有人遇到类似的问题,在放大视图时我也会遇到这样的问题:

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

固定通过替换getApplicationContext()this


Val*_*for 5

对我来说,我的问题是我是

android:background="?attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

对于 LinearLayout 背景,一旦我删除它,测试就通过了。