首页 > 代码库 > android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) 。异常
android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) 。异常
android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) 。
其实是因为out of memory,导致 xml是不可能被充气成功,因此activity的onCreate方法中,
setContentView(R.layout.***)也就不可能成功调用.
他出现在我有多个教学动画,并且播放的动画,是基于imageView,imageView的背景是我们项目的大型图片。
出错情境为:打开一个activity,这个activity只用来播放一个动画。然后手动back,关掉activity(finish)。开第二的activity,第二个activity绑定的layout和第一个不一样,播放另一个动画。手动back,关掉activity。
以此类推,多次运行后会出现做android.view.InflateException: Binary XML file line #95: Error inflating class.
caused by out of memory.
一开始我怎么也没有想明白,每次我的activity都finish了,怎么可能会内存不足。
于是上网找答案,在亲爱的stackoverflow上发现了大神的评论,(大神请移步:http://stackoverflow.com/questions/7536988/android-app-out-of-memory-issues-tried-everything-and-still-at-a-loss/7576275),原来提出问题的哥也试了everything,哈哈。
其实是因为我们并没有手工回收资源,换句话说,java的垃圾回收机制并没有那么的聪明,我们finish掉了,但里面相关的资源他未必回收。有可能他自以为很聪明的留下来等着我们下次使用。所以我们需要在onStop的方法中手动释放imageView这样的大型资源
android.view.InflateException: Binary XML file line #95: Error inflating class(out of memory) 。异常