Android问题笔记 - 运行时异常“Binary XML file line # : Error inflating class”
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉实践过程
在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如标题所描述的异常,然后整个程序Crash掉…
我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决:
-
引用类名问题:自定义了一个View,将他用于布局文件中,假设他的包名叫MyPackage,类名叫MyTestView,这个时候你在XML作为布局元素来布局的话,必须使用完整路径名,也就是包名加类名来引用,用MyPackage.MyTestView来进行引用。
-
构造函数问题:自定义一个View,必须派生实现基类View的三个构造函数
View(Context context) //Simple constructor to use when creating a view from code
View(Context context, AttributeSet attrs) //Constructor that is called when inflating a view from XML
View(Context context, AttributeSet attrs, int defStyle) //Perform inflation from XML and apply a class-specific base style
从文档上的介绍来看,第二个和第三个构造函数对于XML这种引用方式是必须实现的,这三个构造函数应该是在不同的应用场合来实例化一个View对象。 -
编译的中间文件没有清理干净:第三种就是你在原生系统代码的编译环境下编译APK之后,特别是修改了XML,出现标题所述现象,这个时候你只需要删除out目录下编译生成的中间文件夹即可(具体名字记不清了:在编译过程中,系统会将那个位置打印出来,通过串口来看吧,…/out/…/…/classes.dex,你循着这个路径往前推到你的应用的project名字那一层文件夹),删除再重新make就OK了。
-
找不到资源文件:我原来在2.3的原生系统增加动态壁纸的时候,动态壁纸一跑起来就出这个异常,然后crash,当时就是因为找不到drawable的资源文件,于是当时我把drawable的hdpi或nodpi等文件夹的图片资源都拷贝一份到drawble下,问题解决(当时一直不明白系统会根据分辨率来选择加载不同drawable下文件夹的资源,为什么这里必须放入drawable中)。
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
相关文章
- android studio不能输入中文_Android模拟器
- Android 使用substring截取字符串
- android onresume方法,Android onActivityResult()和onResume()的执行顺序
- android .dex文件探究
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- android定时器取消,Android定时器崩溃取消
- Android resource linking failed_android:authorities
- android应用程序_chrome Android
- android activitymanager 系统api_Android view
- Android进程间通信之一:Binder机制学习
- android跳转到相册需要权限,Android打开相册获取图片路径[通俗易懂]
- android r文件丢失_读取文件
- hbuilderx打包android证书的三种生成方法
- android 国际区号注册手机号编码 以及常用城市列表
- 【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )
- 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )
- Android图片墙实现详解手机开发
- android Universal Image Loader for Android 说明文档 (1)详解手机开发
- 小米能通过后门在你的 Android 手机上静默安装任何应用
- Android系统基于Linux内核,实现移动设备突破极限。(android linux内核)
- Android开发技巧之ViewStub控件惰性装载
- Android笔记之:App列表之下拉刷新的使用
- Android读写文件方法汇总
- Android实现Activity界面切换添加动画特效的方法