1.背景

之前一直用的8.0版本模拟器没啥问题,偶然间切换到了android 6.0 版本的模拟器,发现我的应用崩了。

2.错误堆栈

01-26 02:26:28.670 3682-3682/pers.hl.library.debug E/AndroidRuntime: FATAL EXCEPTION: mainProcess: pers.hl.library.debug, PID: 3682java.lang.RuntimeException: Unable to start activity ComponentInfo{pers.hl.library.debug/pers.hl.module_login.LoginActivity}: java.lang.reflect.InvocationTargetExceptionat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)at android.app.ActivityThread.-wrap11(ActivityThread.java)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)Caused by: java.lang.reflect.InvocationTargetExceptionat java.lang.reflect.Method.invoke(Native Method)at pers.hl.common.base.BaseVBActivity.initRootView(BaseVBActivity.kt:48)at pers.hl.common.base.BaseVBActivity.init(BaseVBActivity.kt:32)at pers.hl.common.base.BaseVBActivity.onCreate(BaseVBActivity.kt:27)at pers.hl.common.base.BaseVBVMActivity.onCreate(BaseVBVMActivity.kt:23)at android.app.Activity.performCreate(Activity.java:6237)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>at android.view.LayoutInflater.inflate(LayoutInflater.java:539)at android.view.LayoutInflater.inflate(LayoutInflater.java:423)at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:70)at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:64)at java.lang.reflect.Method.invoke(Native Method) at pers.hl.common.base.BaseVBActivity.initRootView(BaseVBActivity.kt:48) at pers.hl.common.base.BaseVBActivity.init(BaseVBActivity.kt:32) at pers.hl.common.base.BaseVBActivity.onCreate(BaseVBActivity.kt:27) at pers.hl.common.base.BaseVBVMActivity.onCreate(BaseVBVMActivity.kt:23) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>at android.view.LayoutInflater.createView(LayoutInflater.java:645)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)at android.view.LayoutInflater.inflate(LayoutInflater.java:492)at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:70) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:64) at java.lang.reflect.Method.invoke(Native Method) at pers.hl.common.base.BaseVBActivity.initRootView(BaseVBActivity.kt:48) at pers.hl.common.base.BaseVBActivity.init(BaseVBActivity.kt:32) at pers.hl.common.base.BaseVBActivity.onCreate(BaseVBActivity.kt:27) at pers.hl.common.base.BaseVBVMActivity.onCreate(BaseVBVMActivity.kt:23) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.reflect.InvocationTargetExceptionat java.lang.reflect.Constructor.newInstance(Native Method)at android.view.LayoutInflater.createView(LayoutInflater.java:619)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:70) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:64) at java.lang.reflect.Method.invoke(Native Method) at pers.hl.common.base.BaseVBActivity.initRootView(BaseVBActivity.kt:48) at pers.hl.common.base.BaseVBActivity.init(BaseVBActivity.kt:32) at pers.hl.common.base.BaseVBActivity.onCreate(BaseVBActivity.kt:27) at pers.hl.common.base.BaseVBVMActivity.onCreate(BaseVBVMActivity.kt:23) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.OutOfMemoryError: Failed to allocate a 98724108 byte allocation with 1951802 free bytes and 93MB until OOMat dalvik.system.VMRuntime.newNonMovableArray(Native Method)at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080)at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635)at android.content.res.Resources.loadDrawable(Resources.java:2540)at android.content.res.TypedArray.getDrawable(TypedArray.java:870)at android.view.View.<init>(View.java:3948)at android.view.ViewGroup.<init>(ViewGroup.java:573)at android.view.ViewGroup.<init>(ViewGroup.java:569)at android.view.ViewGroup.<init>(ViewGroup.java:565)at androidx.constraintlayout.widget.ConstraintLayout.<init>(ConstraintLayout.java:568)at java.lang.reflect.Constructor.newInstance(Native Method) at android.view.LayoutInflater.createView(LayoutInflater.java:619) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:70) at pers.hl.module_login.databinding.LoginActivityLoginBinding.inflate(LoginActivityLoginBinding.java:64) at java.lang.reflect.Method.invoke(Native Method) at pers.hl.common.base.BaseVBActivity.initRootView(BaseVBActivity.kt:48) at pers.hl.common.base.BaseVBActivity.init(BaseVBActivity.kt:32) at pers.hl.common.base.BaseVBActivity.onCreate(BaseVBActivity.kt:27) at pers.hl.common.base.BaseVBVMActivity.onCreate(BaseVBVMActivity.kt:23) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

3.分析

开始就是一顿花里胡哨的瞎分析,因为我这里是反射调用ViewBinding的inflate方法,就去各种改代码,然并卵。。。

简单查看后,抓住一句重要的信息:Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>

这意思可不就是在我的页面布局xml文件里面第二行报错么,于是打开了我的布局,第二行就是个ConstraintLayout呀,没啥特别的。

又着急了,谷哥度娘问了一圈,多方查阅资料,有告诉我是啥drawable资源没放对位置的原因,有说是自定义view没写对的原因,还有啥删除v24的文件夹之类的。最后就把此布局只保留一个根layout,然,无果。。。

实在想不通啊,又到群里找大佬帮忙,可惜大佬没理我。

最后冷静下来,仔细看了看布局,这不起眼的一行引起了我的注意:

点开一看,这是一个.jpg格式的图片,我放在drawable下面的。

4.解决

结合上面报错最后一个原因跟loadDrawable有点关系,抱着试试看的态度删除此行。

然后,好了,神奇的Android世界。。

5.原理

最后还是没想通是为啥,自己分析可能是不同版本的inflate方法差异,想去看源码,时间不允许,就留到下次吧。

Binary XML file line #2: Error inflating class <unknown>相关推荐

  1. Binary XML file line #8: Error inflating class android.support.v7.widget.RecyclerView

    今天创建了一个 demo ,然后就是复制RecyclerView 过去, 到最后完成运行的时候发现 系统奔溃了, 然后 提示 Binary XML file line #8: Error inflat ...

  2. android Binary XML file line #1: Binary XML file line #1: Error inflating class x 问题详解

    话不多少,上错误堆栈: Process: com.mci.smagazine, PID: 25065java.lang.RuntimeException: Unable to start activi ...

  3. Android --- Binary XML file line2 Binary XML file line 2 Error inflating class unknown

    报错信息如下: 05/21 10:18:21: Launching app $ adb push D:\android install files\jishi\app\build\outputs\ap ...

  4. Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class lzl.edu.c

    在自定义view中常常会出现这么一个错误 Caused by: android.view.InflateException: Binary XML file line #12: Error infla ...

  5. android recyclerView Binary XML file line #7: Error inflating class android.support.v7.widget.Recycl

    Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerView 原来在eclipse中使用R ...

  6. android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating

    android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating cla ...

  7. 运行安卓程序报错android.view.InflateException: Binary XML file line #11: Error inflating class ImageView

    运行安卓程序报错android.view.InflateException: Binary XML file line #11: Error inflating class ImageView 先上代 ...

  8. Binary XML file line #9: Error inflating class

    报错日志 02-22 23:12:44.403 29776-29776/com.example.btn_press E/AndroidRuntime: FATAL EXCEPTION: main   ...

  9. Binary XML file line 2: Error inflating class

    文章目录 问题 解决方案 在开发中遇到一个神奇的坑,先做记录. 问题 功能很简单,给某个点击区域设置按压态,正常颜色是 @color/colorPrimaryDark,被点击时是 @color/col ...

最新文章

  1. 送你9个快速使用Pytorch训练解决神经网络的技巧(附代码)
  2. iphone开发畅销书TOP5(china-pub内部数据)
  3. MariaDB 视图与触发器(11)
  4. 关闭自动更新_Win10系统关闭自动更新方法
  5. Spotlight监控工具使用
  6. Mysql面试常见知识点总结(一)
  7. windows 7 引导过程概述
  8. 【转帖】防止ASP.NET按钮多次提交的办法
  9. java程序用maven打包的命令
  10. 矩阵Jordan标准型过渡矩阵的求解
  11. 使用注册表管理桌面新建文件
  12. 好用的菜单栏翻译软件Bob使用教程,Bob怎么打开录屏权限
  13. 锁存器和缓冲器的区别
  14. 树莓派上云-天工物接入
  15. [vue]vue接入AntV G2Plot
  16. c语言程序设计在哪讲,《C语言程序设计》讲.doc
  17. CSS实现两端对齐(及原理)
  18. Latex常用语法结构
  19. 在vue中使用Google Recaptcha验证
  20. echarts基本图例

热门文章

  1. springboot 添加url过滤器
  2. 2023劲牌持正堂药业合作商大会成功召开
  3. let‘s encrypt 免费https证书申请
  4. 程序猿的中秋夜,利用这些“代码”,解锁团聚新姿态
  5. matlab返回空格,matlab中用fprintf怎么写入空格 、制表符,回车换行等符号?
  6. docker安装和操作
  7. [附源码]java毕业设计万科电子商城
  8. 万科java_[Java教程]仿万科底部的新闻滑动特效
  9. 无痛苦减肥的一场春梦
  10. Ubuntu16 编译源码安装MXNet 可变卷积Deformable-ConvNets GPU版