=========== 1   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zgan.community/com.zgan.community.activity.CommunityPolicitalDetailActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)

Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class <unknown> 
  at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
 Caused by: java.lang.reflect.InvocationTargetException 
  at java.lang.reflect.Constructor.constructNative(Native Method) 
  at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
  at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
  ... 23 more 
 Caused by: java.lang.OutOfMemoryError 
  at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500) 
  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353) 
  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781) 
  at android.content.res.Resources.loadDrawable(Resources.java:2057) 
  at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
  at android.view.View.<init>(View.java:3336) 
  at android.view.ViewGroup.<init>(ViewGroup.java:427) 
  at android.widget.LinearLayout.<init>(LinearLayout.java:176) 
  at android.widget.LinearLayout.<init>(LinearLayout.java:172) 
  ... 26 more

00k的图片直接在xml里设置的话在个别手机很容易内存溢出.试试这个吧/

public static Bitmap loadBitmapImage(int resId,int inSize,Context context) {
     //resetPurgeTimer();
     String strId =String.valueOf(resId);
      if(mImageCache.containsKey(strId)) {
       SoftReference<Bitmap> softReference = mImageCache.get(strId);
             Bitmap bitmap = softReference.get();             
             if(null != bitmap)
                 return bitmap;

}
           BitmapFactory.Options options = new BitmapFactory.Options();
      options.inSampleSize = inSize;
      options.inPreferredConfig = Bitmap.Config.ARGB_4444;
  Bitmap bitmap =null;
  try{
   bitmap = BitmapFactory.decodeResource(context.getResources(), resId);           
         mImageCache.put(strId, new SoftReference<Bitmap>(bitmap));
  }catch(OutOfMemoryError e){
   System.gc();
   bitmap =null;
  }
           return bitmap;

}

public static Drawable readDrawable(Context context, int resId) { 
BitmapFactory.Options opt = new BitmapFactory.Options(); 
opt.inPreferredConfig = Bitmap.Config.RGB_565; 
opt.inPurgeable = true; 
opt.inInputShareable = true; 
// 获取资源图片 
InputStream is = context.getResources().openRawResource(resId); 
return new BitmapDrawable(BitmapFactory.decodeStream(is, null, opt)); 

网上说decodeStream内存占用少一些,把你的decodeResouse换成decodeStream 会不会更好一些 
 

可能性1:

程序其他地方加载了太多bitmap导致这个地方内存不够了,我觉得这个可能性比较大

把你这个Activity单独抠出来放到一个独立工程里跑一遍,就跑界面,排除其他逻辑的影响,看看还会不会OOM

可能性2:

如果还会OOM,我怀疑你这个layout某些图片用了比较大的分辨率(200-300应该不至于),而那台手机分辨率是比xhdpi还大一个挡位,所以系统自动进行了放大才加载。

By default, Android scales your bitmap drawables (.png,.jpg, and.giffiles) and Nine-Patch drawables (.9.pngfiles) so that they render at the appropriate physical size on each device. For example, if your application provides bitmap drawables only for the baseline, medium screen density (mdpi), then the system scales them up when on a high-density screen, and scales them down when on a low-density screen.

 

--- 共有 2 条评论 ---

  • 四档路飞谢谢,原来在xxhdpi下再放个图片文件,系统就不会吧hdpi下的图片拿来缩放从而导致OOM了 (10个月前)

bug_ _图片_android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>的更多相关文章

  1. bug_ _ android.view.InflateException: Binary XML file line #2: Error inflating class <unknown

    ========= 5.0     android异常“android.view.InflateException: Binary XML file line # : Error inflating ...

  2. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex.activity/com.ex.activity.LoginActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex.activity/com.ex.activity.L ...

  3. Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

    这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并 ...

  4. Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.design.widget.TabLayout,TableLayout引起页面崩溃

    在使用TableLayout的时候,运行引用程序直接Crash. FATAL EXCEPTION: main Process: com.edaixi.activity, PID: 9703 java. ...

  5. "android.uid.systemandroid.view.InflateException: Binary XML file line #7: Error inflating class android.webkit.WebView

    在android源码中编译app通过,运行时出现错误: "android.uid.systemandroid.view.InflateException: Binary XML file l ...

  6. widget自定义控件【android.view.InflateException: Binary XML file line #2: Error inflating class...】

    此错误比较难定位,场景是这样的:在一个widget中使用了自定义控件,始终会报 android.view.InflateException: Binary XML file line #2: Erro ...

  7. 异常 ndroid.view.InflateException: Binary XML file line #8: Error inflating class com.ouyang.test.MyView

    发现自定义view时出现ndroid.view.InflateException: Binary XML file line #8: Error inflating class com.ouyang. ...

  8. 错误解决:android.view.InflateException: Binary XML file line #11: Error inflating class com.tony.timepicker.TimePicker

    今天在做项目开发时遇到这么一个错误,完整的错误提示信息如下: java.lang.RuntimeException: Unable to start activity ComponentInfo{co ...

  9. TextInputLayout低版本bug :“android.view.InflateException: Binary XML file line #6 : Error inflating class Textview”

    开发中用到TextInputLayout配合TextInputEdittext做输入框,在android7.0 android8.0手机上运行正常,在异步android5.0.2的手机上,点击输入框就 ...

随机推荐

  1. hdu1827 强连通

    题意:一个人需要联系其他所有人,已知他自己联系每个人的花费,并且他可以联系某个人再让他联系他能联系到的人,给出一系列关系表示 A 能够联系 B.问他最少需要联系多少人,花费多少钱 首先,建成一个有向图 ...

  2. linux内核启动流程[转]

    启动流程一览 既然启动是很严肃的一件事,那我们就来了解一下整个启动的过程吧! 好让大家比较容易发现启动过程里面可能会发生问题的地方,以及出现问题后的解决之道! 不过,由於启动的过程中,那个启动管理程序 ...

  3. Android Studio + gradle多渠道打包

    通过工具栏的Build->Build Apk 好像只能打包第一个Module(eclipse里面是Project的概念),怎么多渠道打包呢?目前好像只能一个一个的打 首先在清单文件里设置个变量: ...

  4. InputStreamReader和OutputStreamWriter

    public class ClientSocket {   public static void main(String args[]) {         String host = "1 ...

  5. checking

    https://en.wikipedia.org/wiki/Java_performance https://en.wikipedia.org/wiki/Java_virtual_machine ht ...

  6. C# websocket Server 加密 76号协议

    服务器端源码: 76号协议增加了加密字段 sec-websocket-key1 sec-websocket-key2 以及最后8个字节 服务器必须在握手信息之后发送回解密信息才能握手成功. 解密方式 ...

  7. Sublime Text 下配置python

    Sublime Text 2作为一款轻量级的编辑器,特点鲜明,方便使用,而且支持多语言.  一.control+B方式 1. 在工具栏点击Preferences,打开Browse Packages.在 ...

  8. jQuery-vsdoc.js文件是vs中的JavaScript intellisense,

    在VS 2008中启用jQuery Intellisense的步骤 要在VS中启用jQuery的intellisense完成,你要遵循三个步骤: 第一步: 安装VS 2008 SP1 VS 2008 ...

  9. 动态进行JQ Validate 的方法

    $.validator.unobtrusive.parse($('form[action = "@Url.Action()"]'));

  10. 【转】Php+ajax+jsonp解决ajax跨域问题

    首先:jsonp是json用来跨域的一个东西. 原理是通过script标签的跨域特性来绕过同源策略. 发送端: $.ajax({ type : "post", url : &quo ...