【问题标题】:Android android.view.InflateException Binary XML file line #644: Error inflating class <unknown>?Android android.view.InflateException 二进制 XML 文件行 #644:错误膨胀类 <unknown>?
【发布时间】:2014-08-11 21:29:47
【问题描述】:

我不知道如何解决这个错误,首先应用程序运行良好,它开始打开一个菜单,然后我按下一个按钮开始一个新课程,它工作正常,但是当我按下返回按钮并再次选择它时如果应用程序停止工作。那么知道如何解决这个问题吗?

第 644 行:

<ImageButton     //<<this is line 644
       android:id="@+id/sephiroth"
       android:layout_width="110dip"
       android:layout_height="110dip"
       android:layout_gravity="center"
       android:background="@android:color/transparent"
       android:scaleType="fitCenter"
       android:src="@drawable/sephiroth" />

这是我的日志:

08-11 17:19:39.758: D/dalvikvm(2108): GC_FOR_ALLOC freed 3146K, 9% free 55441K/60568K, paused 2ms, total 2ms
08-11 17:19:39.788: D/dalvikvm(2108): GC_FOR_ALLOC freed 16761K, 35% free 39783K/60568K, paused 0ms, total 0ms
08-11 17:19:39.808: D/dalvikvm(2108): GC_FOR_ALLOC freed 257K, 33% free 40653K/60568K, paused 2ms, total 2ms
08-11 17:19:39.818: D/dalvikvm(2108): GC_FOR_ALLOC freed 159K, 31% free 42392K/60568K, paused 2ms, total 2ms
08-11 17:19:39.848: D/dalvikvm(2108): GC_FOR_ALLOC freed 383K, 28% free 43924K/60568K, paused 3ms, total 3ms
08-11 17:19:39.868: D/dalvikvm(2108): GC_FOR_ALLOC freed <1K, 27% free 44719K/60568K, paused 4ms, total 4ms
08-11 17:19:39.868: I/dalvikvm-heap(2108): Grow heap (frag case) to 46.997MB for 3256332-byte allocation
08-11 17:19:39.898: D/dalvikvm(2108): GC_FOR_ALLOC freed 0K, 21% free 47899K/60568K, paused 2ms, total 2ms
08-11 17:19:39.938: D/dalvikvm(2108): GC_FOR_ALLOC freed 968K, 20% free 48480K/60568K, paused 3ms, total 3ms
08-11 17:19:39.948: D/dalvikvm(2108): GC_FOR_ALLOC freed 670K, 19% free 49199K/60568K, paused 3ms, total 3ms
08-11 17:19:39.968: D/dalvikvm(2108): GC_FOR_ALLOC freed 195K, 17% free 50697K/60568K, paused 0ms, total 0ms
08-11 17:19:39.988: D/dalvikvm(2108): GC_FOR_ALLOC freed 900K, 16% free 51409K/60568K, paused 3ms, total 3ms
08-11 17:19:40.008: D/dalvikvm(2108): GC_FOR_ALLOC freed <1K, 14% free 52356K/60568K, paused 2ms, total 2ms
08-11 17:19:40.028: D/dalvikvm(2108): GC_FOR_ALLOC freed 1011K, 12% free 53360K/60568K, paused 3ms, total 3ms
08-11 17:19:40.058: D/dalvikvm(2108): GC_FOR_ALLOC freed 290K, 10% free 54990K/60568K, paused 2ms, total 2ms
08-11 17:19:40.078: D/dalvikvm(2108): GC_FOR_ALLOC freed 456K, 8% free 55962K/60568K, paused 2ms, total 2ms
08-11 17:19:40.098: D/dalvikvm(2108): GC_FOR_ALLOC freed 606K, 7% free 56434K/60568K, paused 4ms, total 4ms
08-11 17:19:40.118: D/dalvikvm(2108): GC_FOR_ALLOC freed <1K, 6% free 57536K/60568K, paused 2ms, total 2ms
08-11 17:19:40.118: I/dalvikvm-heap(2108): Grow heap (frag case) to 58.319MB for 2004096-byte allocation
08-11 17:19:40.138: D/dalvikvm(2108): GC_FOR_ALLOC freed <1K, 5% free 59493K/62528K, paused 12ms, total 12ms
08-11 17:19:40.168: D/dalvikvm(2108): GC_FOR_ALLOC freed 1102K, 6% free 59012K/62528K, paused 2ms, total 3ms
08-11 17:19:40.168: I/dalvikvm-heap(2108): Grow heap (frag case) to 60.268MB for 2537276-byte allocation
08-11 17:19:40.188: D/dalvikvm(2108): GC_FOR_ALLOC freed <1K, 6% free 61490K/65008K, paused 5ms, total 5ms
08-11 17:19:40.208: D/dalvikvm(2108): GC_FOR_ALLOC freed 619K, 6% free 61616K/65008K, paused 3ms, total 4ms
08-11 17:19:40.208: I/dalvikvm-heap(2108): Forcing collection of SoftReferences for 1336152-byte allocation
08-11 17:19:40.218: D/dalvikvm(2108): GC_BEFORE_OOM freed 9K, 6% free 61606K/65008K, paused 7ms, total 8ms
08-11 17:19:40.218: E/dalvikvm-heap(2108): Out of memory on a 1336152-byte allocation.
08-11 17:19:40.218: I/dalvikvm(2108): "main" prio=5 tid=1 RUNNABLE
08-11 17:19:40.218: I/dalvikvm(2108):   | group="main" sCount=0 dsCount=0 obj=0xb0e8e480 self=0xb96e91e0
08-11 17:19:40.218: I/dalvikvm(2108):   | sysTid=2108 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-1217351648
08-11 17:19:40.218: I/dalvikvm(2108):   | state=R schedstat=( 0 0 0 ) utm=141 stm=171 core=0
08-11 17:19:40.218: I/dalvikvm(2108):   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:503)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:356)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:800)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.content.res.Resources.loadDrawable(Resources.java:2105)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.widget.ImageView.<init>(ImageView.java:127)
08-11 17:19:40.218: I/dalvikvm(2108):   at android.widget.ImageButton.<init>(ImageButton.java:87)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.widget.ImageButton.<init>(ImageButton.java:83)
08-11 17:19:40.228: I/dalvikvm(2108):   at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 17:19:40.228: I/dalvikvm(2108):   at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.createView(LayoutInflater.java:594)
08-11 17:19:40.228: I/dalvikvm(2108):   at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
08-11 17:19:40.228: I/dalvikvm(2108):   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.Activity.setContentView(Activity.java:1895)
08-11 17:19:40.228: I/dalvikvm(2108):   at com.shattereddimension.khguide.kh2fm.onCreate(kh2fm.java:29)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.Activity.performCreate(Activity.java:5133)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.os.Looper.loop(Looper.java:137)
08-11 17:19:40.228: I/dalvikvm(2108):   at android.app.ActivityThread.main(ActivityThread.java:5103)
08-11 17:19:40.228: I/dalvikvm(2108):   at java.lang.reflect.Method.invokeNative(Native Method)
08-11 17:19:40.228: I/dalvikvm(2108):   at java.lang.reflect.Method.invoke(Method.java:525)
08-11 17:19:40.228: I/dalvikvm(2108):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-11 17:19:40.228: I/dalvikvm(2108):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-11 17:19:40.228: I/dalvikvm(2108):   at dalvik.system.NativeStart.main(Native Method)
08-11 17:19:40.228: D/skia(2108): --- allocation failed for scaled bitmap
08-11 17:19:40.228: D/AndroidRuntime(2108): Shutting down VM
08-11 17:19:40.228: W/dalvikvm(2108): threadid=1: thread exiting with uncaught exception (group=0xb0e8d648)
08-11 17:19:40.228: E/AndroidRuntime(2108): FATAL EXCEPTION: main
08-11 17:19:40.228: E/AndroidRuntime(2108): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shattereddimension.khguide/com.shattereddimension.khguide.kh2fm}: android.view.InflateException: Binary XML file line #644: Error inflating class <unknown>
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.os.Looper.loop(Looper.java:137)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread.main(ActivityThread.java:5103)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at java.lang.reflect.Method.invokeNative(Native Method)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at java.lang.reflect.Method.invoke(Method.java:525)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at dalvik.system.NativeStart.main(Native Method)
08-11 17:19:40.228: E/AndroidRuntime(2108): Caused by: android.view.InflateException: Binary XML file line #644: Error inflating class <unknown>
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.createView(LayoutInflater.java:620)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.Activity.setContentView(Activity.java:1895)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at com.shattereddimension.khguide.kh2fm.onCreate(kh2fm.java:29)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.Activity.performCreate(Activity.java:5133)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
08-11 17:19:40.228: E/AndroidRuntime(2108):     ... 11 more
08-11 17:19:40.228: E/AndroidRuntime(2108): Caused by: java.lang.reflect.InvocationTargetException
08-11 17:19:40.228: E/AndroidRuntime(2108):     at java.lang.reflect.Constructor.constructNative(Native Method)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.view.LayoutInflater.createView(LayoutInflater.java:594)
08-11 17:19:40.228: E/AndroidRuntime(2108):     ... 28 more
08-11 17:19:40.228: E/AndroidRuntime(2108): Caused by: java.lang.OutOfMemoryError
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:503)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:356)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:800)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.content.res.Resources.loadDrawable(Resources.java:2105)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.widget.ImageView.<init>(ImageView.java:127)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.widget.ImageButton.<init>(ImageButton.java:87)
08-11 17:19:40.228: E/AndroidRuntime(2108):     at android.widget.ImageButton.<init>(ImageButton.java:83)
08-11 17:19:40.228: E/AndroidRuntime(2108):     ... 31 more

【问题讨论】:

  • 请发布您的活动使用的代码,该代码失败并显示“无法启动活动组件信息”的消息?
  • "Caused by: java.lang.OutOfMemoryError" :正如 user3586222 所回答的,您的内存已用完。我不得不承认,当我看到你有一个包含 644 行(或更多)的布局文件时,我觉得这有点奇怪——我从来没有一个布局文件包含超过 50 或 60 行代码。您将需要更好地管理图像。
  • 我正在使用毕加索的图片,它们是 20 张图片和 30 个文本视图,这是我能写的最小的东西
  • @user3896367 :我只能猜测您正在重新运行原始加载图像的代码,并且它试图在不释放第一次加载操作使用的资源(内存)的情况下重新加载它们.看看改变你加载它们的方式。
  • 如何释放内存? @Squonk

标签: java android eclipse logcat


【解决方案1】:

真正的原因是OOM(Out of Memory),而不是inflating问题。

08-11 17:19:40.218: D/dalvikvm(2108): GC_BEFORE_OOM freed 9K, 6% free 61606K/65008K, paused 7ms, total 8ms
08-11 17:19:40.218: E/dalvikvm-heap(2108): Out of memory on a 1336152-byte allocation.
08-11 17:19:40.218: I/dalvikvm(2108): "main" prio=5 tid=1 RUNNABLE

因为当启动一个新的activity和inflating layout时,它需要一些内存来初始化Button、ImageButton、ImageView、custom view等视图。但是由于OOM,没有足够的空间来初始化这些视图,所以android系统抛出异常。

解决这个问题:你可能会找到导致oom的原因并修复它,如果你不需要它,我建议你关闭android hardwareAccelerated以节省空间。像这样:

<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>

更多解决方法:Performance Tips

对不起,我的英语不好,随时问我!

【讨论】:

  • 除了硬件加速还有其他解决方案吗
  • 请点击链接查看更多解决方案link
【解决方案2】:

这个

08-11 17:19:40.218: E/dalvikvm-heap(2108): Out of memory on a 1336152-byte allocation.
08-11 17:19:40.218: I/dalvikvm(2108): "main" prio=5 tid=1 RUNNABLE

那个错误是因为你的图片太大了,最好是缩小他的尺寸。

【讨论】:

  • 图片尺寸为400x400
  • 你确定这是唯一的图片吗?
  • 所有的都是这个范围他们是19张图片
  • 它只适用于 5 张图片,没有一个错误
  • 如果你尝试添加 mos 图片会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
相关资源
最近更新 更多