java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder layout:android.support.v7.widget.LinearLayoutManager@c88e868
错误如上图,我表示不明觉厉,后来发现是因为初始化的时候没有去设置 setEmptyView ,可是我其它页面也都没有的,直接都是在回调里去设置的,但是这次就是没用,报的错也是666,后来试了很多次发现必须初始化先设置一下才行,猜测可能跟布局有点关系,我的recyclerview里面又嵌套了一个recyclerview
Multiple dex files define Landroid/support/xxx
这个包冲突都是support里的,比如 Multiple dex files define Landroid/support/v4/app/FragmentTabHost$DummyTabFactory 或者 Multiple dex files define Landroid/support/design/widget/CoordinatorLayout;
不管什么原因,只要在gradle里面都引用一下覆盖版本就行了,不然有你哭的时候,出错日志如下
解决方案: 把后面的版本号都统一,重新运行,ok
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
百度了一番,发现没有让我失望,没什么用,因为原因可能不只一个,具体不好定位,后来我没办法就把所有的依赖版本升了一下,从27.0.0到28.0.0了,然后我一个个试了一遍,确定是谷歌的依赖库版本低了,估计你添加的依赖库里面的一些sdk和tools版本调成了28,
所以以前的低版本没法成功报错,如果你百度了很多办法都不行,不妨试试我这个,下面是我依赖过的库
Error:Execution failed for task ':app:compileRetrolambdaDebug'. > Could not resolve all files for configuration ':app:retrolambdaConfig'. > Could not download retrolambda.jar (net.orfjackal.retrolambda:retrolambda:2.3.0)
这个错误对应三步,第一步是把依赖版本更新到 classpath 'me.tatarka:gradle-retrolambda:3.2.5'
第二步是在 dependencies 下面添加 retrolambdaConfig 'net.orfjackal.retrolambda:retrolambda:2.3.0'
第三步就是jdk1.8了
undefined reference to '__android_log_print'
很多人碰到过这个异常,但是大部分资料可能是说Android.mk,而不是CMakeList,明明已经定义了宏,而且也在 target_link_libraries 中添加过,但是就是不行,排除语法错误,有的人说是配置gradle ldLibs "log",但是不管用,还有其它的方案,但是初学者也看不懂,有的文章可能说到了点子上,但是不友好,比如说创建多个对应的CMakeList配置文件,一一对应,其实有点眉目了,但是这显然不是友好的解决方案,其实到这里就很清晰了,CMakeList配置文件没加进去,有的人说我添加了啊,其实没有
如下图,错误的添加
正确的是一个个添加,在此运行,问题解决
c++ fatal signal 11
如图,此异常是给申请的二级指针没分配内存地址,然后就 free 释放造成的,一般释放在最下面操作,所以有时候容易被忽略
TabLayout在 setupWithViewPager 之后标题看不见,无法显示问题
这个问题应该是常态,自带的 com.google.android.material.tabs.TabLayout,在跟viewpager绑定之后发现标题显示不了,这里也比较简单,就是在 pageradapter 中重写 getPageTitle 方法
因为在 setupWithViewPager 时候源码中的 setPagerAdapter 方法里会执行 removeAllTabs()
could not find extension implementation class org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
又是一个大坑,这个错误是我使用了 buildSrc 导致的,一开始加入进去时运行,没问题,但是此时你清楚缓存后在试下,发现不行了,sync也一样,报错GradleBuildRootsManager,gradle修改添加lib因为sync不了无法添加,但是又不影响你运行,是真的吭逼
后来研究了好久,删了很多旧操作,最后删的只剩一个壳了还是这样,后来直接删库,重新拉取,发现可以了,然后你一清缓存又不行了,很显然,问题不是出现在你添加的代码上,然后就开始对比gradle配置了,更换版本移除不必要的类库,最后发现在properties文件
中发现有一些配置的变量参数,这个文件参数不能动,本来项目里配置了几个版本变量用于gradle配置的,根本不影响项目,但是你添加了buildsrc就会导致这个GradleBuildRootsManager,实在不明白为什么会这样,而且这个错网上基本没有资料可查,碰到过的人也极少
x5浏览器内核初始化失败 X5WebView onViewInitFinished is false
使用x5浏览器时,浏览器第一次初始化需要去下载内核包,时间比较长,可能一两分钟,在次期间,你加载webview的话会导致x5浏览器初始化失败,需要重启app在次加载才行,这个没办法,只能通过配置webview去解决
需要去设置webview的 setBlockNetworkImage 属性,设置false好像会导致部分h5图片失败,所以一般设置true的,但是如果x5初始化失败了还是true就不行了,改成false,图片正常加载,这里根据x5的成功失败去设置的
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr *
线程中多次 wait() 就会导致这个异常,很多人通过加 try catch去解决,这边建议自己控制一下,不需要额外添加异常开销
The application could not be installed.
Installation failed due to: 'Connection refused: connect'
Unable to open connection to ADB server: java.io.IOException: Can't find adb server on port 5037
问题如图,apk 成功生成,但是无法安装,log 中已经给出是adb端口占用问题,于是去关闭这个端口
查询出端口,log 中也给出了哪个端口占用,关闭操作失败
以为是没权限,然后使用管理员运行,在次关闭
发现关闭不了,蒙圈了,后来查资料,发现是内部一个设置导致的,真是吭货,log 也是误导你;
把下面设置关掉,然后重启 as 就行了