智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述android常犯错误记录相关的知识,希望能为你提供帮助。
文章图片
检查 minSdkVersion什么的是不是和你依赖的包一样,它上面也有个小提示,显示本地的11,依赖的为15,那就改成15好了,重新build好了
文章图片
ClassNotFoundException异常
文章图片
Failed to resolve:xxx错误
一开始报 already disposed module: XXX的错误,然后刷新一下,后面的xxx就变一下,反正就是already disposed module,然后百度,在设置里点击 invalidate caches/restart ,restart一下,接着就 failed to resolve:xxx了,这下就清楚了
文章图片
如图,把第一行加上就ok了
Gradle sync failed: Unable to delete old javaCompile action 这个错误是可能是你的 retrolambda版本不对,调整你的版本,我是这么解决的
文章图片
NoSuchFieldError no static field x of type i in class lcom/app r$id or its superclasses,错误如下图
文章图片
文章图片
原因就是新加了一个自定义控件照成的,一开始还以为是报名资源命名什么起冲突了,然后发现不是,后来引用的自定义控件的xml文件中的最外层布局上面添加,还是不行,然后发现主工程还有一个一样的布局,坑爹了,删了就好了
今天又被吭了一把,真想骂娘的,我想用过android studio的人肯定都已经骂过了,太吭了,吭逼
错误:Gradle DSL method not found compile()
文章图片
还是想吐槽一下,报了这么多错,还带三个错误链接,有什么叼用?垃圾,气死我了,吐槽完了,骂完了,负能量没了就好好百度一下了
发现一篇博客,参考后解决了,也是奇葩
参考地址:http://blog.csdn.net/songtao542/article/details/51469870
也是感谢这位大兄弟,这么奇葩的问题也能找到,解决方法就是 dependencies { }中的所有 compile 语句必须换行书写,不可以两个 compile 语句在一行里
本来我的是换行的,导包的时候自动给我缩进了,也不知道怎么就缩进了,感觉也没什么,所以没去管,没想到问题就出现在这里
FileNotFoundException EISDIR Failed to ensure directory cache
文章图片
文章图片
如图为报错代码和日志,造成的原因是 RandomAccessFile 对文件操作,而因为移植问题之前的参数为空,导致创建的文件是空字符串文件,无法创建,所以直接操作文件夹了,导致报错,除此之外还有个需要注意的
文章图片
地址用url对象
DexArchiveMergerException
文章图片
Error:Execution failed for task \':app:transformDexArchiveWithExternalLibsDexMergerForDebug\'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
这个异常好像我碰到两次了,不过还是搞了我一会,几下笔记,我的gradle是3.1编译的,合并失败,一开始以为方法超限了,后来想想不可能,因为代码量不是很大,然后就想到引用了第三方的 lib 后出现的,然后开始找什么原因,因为我的引用版本一般都是统一的,
【android常犯错误记录】所以一般不会出现合并失败的错误,都是27.0.0
文章图片
然后我就发现不对的地方了,我的一个gradle版本不是一样的
文章图片
所以,把 .+改成一样的,这样就不会出现合并失败的错误了,改成一样的版本立马运行成功了,有的时候或许你引用了gradle库起冲突,这个时候可以排除,先把这个引用注释一下运行看看是否还是会冲突,如果没有冲突了表面就是这个gradle存在冲突,那么只能去
下载这个引用的源码了,把源码的版本改成一样的,直接导入到项目中
Error:Unable to load class \'org.gradle.api.internal.component.Usage
文章图片
文章图片
就是把下面的版本号修改成0.5.0
resource drawable style aka not found
文章图片
这个错误很是奇葩遇到到时候,因为这个 资源文件和属性都是存在的,而且文件反复检查没有丝毫问题,这个也是以前就好的,查看log历史版本,都没有动过,看着android studio这个错误提示真是让我很蛋疼
文章图片
后来我重命名,删了在建,重启,clear,都没效果,后来我把所有gradle版本都换了一个版本编译,结果真正的错误来了,这才来正主,我真是醉了,然后就是很简单的解决了
notFoundException Resource ID #oxfffffe6c
文章图片
这个是适配器里面 BaseMultiItemQuickAdapter 少写了一个type导致的,坚持你的数据源,看下type少了哪个
文章图片
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)
文章图片
startForeground 8.1系统操作的时候报错,然后添加了处理后是这样的
文章图片
我以为可以了,没想到还是太年轻了,我看着很多方案都是这样处理的,没毛病,结果还是差了一招半式,name不能为 “”,涨知识了,一口老血就噗了出来,难怪很多人说解决方案如下,别问我为什么
文章图片
推荐阅读
- 安卓6.0(棉花糖)新特性汇总
- Android可伸缩布局-FlexboxLayout(支持RecyclerView集成)
- Android 官方推荐 : DialogFragment 创建对话框
- Android自定义控件(类QQ未读消息拖拽效果)
- Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小
- Java反射在Android中的使用
- Android--普通注册页面实现(无功能)
- 创建一个自定义的数据结构来计算O(1)中的函数
- 算法设计(从三元树创建双向链表)