android常犯错误记录
Posted 翻滚的咸鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 后出现的,然后开始找什么原因,因为我的引用版本一般都是统一的,
所以一般不会出现合并失败的错误,都是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不能为 “”,涨知识了,一口老血就噗了出来,难怪很多人说解决方案如下,别问我为什么
以上是关于android常犯错误记录的主要内容,如果未能解决你的问题,请参考以下文章
错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段
错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段
错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段
MISRA C:2012 Dir-1.1(只记录常犯的错误和常用的规则)Bit-fields inlineC99,NOT support in C90 #pragma