Bug记录

作者: 天黑l别出门 | 来源:发表于2020-07-23 10:05 被阅读0次

【 日期 】:2020.07.06

【  问题  】:android Manifest merger failed : Attribute application@allowBackup value=(true) from AndroidManifest

                    (翻译:android清单合并失败:属性应用程序@allowBackup来自manifest的值=(true)

【  原 因  】:就是导入的aar包里面已经配置过android:allowBackup="true",然而自己的项目也配置过这个属性

【如何发现】:

【如何修复】:在自己项目的AndroidManifest.xml  application节点加上 tools:replace="allowBackup"

                      这样整个项目就只认这个属性,同理,其他报错的属性,也是这样加,最后就变成这样了

                      tools:replace="theme,label,icon,allowBackup"

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.14

【  问题  】:android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@d5d5f9f is not valid; is your activity running? (无法添加窗口,活动是否正在运行?)

【  原因  】:1.可能是传入的context不对,Dialog的context不能传getApplicationContext();

                      2.PopupWindow弹窗不能直接在Activity的onCreate函数里执行,必须要等activity的生命周期函数全部执行完毕之后,需要依附的View加载完成了才可以。

                      3.当activity已经finish掉,但异步线程在运行并且调用了Dialog;

【如何修复】:原因1.将其改成this即可。

                      原因2.在public void onWindowFocusChanged(boolean hasFocus){}函数中调用,或单独开启一个线程去调用。

                      原因3.在弹窗前先判断好当前界面是已经否被结束掉了:  if (!isFinishing()) {  mDialog.show();  }

***************************************************************************************************************************************

【  日期  】:2020.07.14

【  问题  】:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{8a9260b position=8 id=-1, oldPos=-1, pLpos:-1 no parent} android.support.v7.widget.RecyclerView

【  原因  】:当用户滑动列表时,recyclerView会更新下面要显示的item。此时,如果clear了Data,就会造成该异常,因为用户正在滑动列表,需要显示下面的item,但此时数据Data已为空;

【如何发现】:友盟反馈,然后多次测试,果然有次异常;

【如何修复】:***

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.14

【  问题  】:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{8a9260b position=8 id=-1, oldPos=-1, pLpos:-1 no parent} android.support.v7.widget.RecyclerView

【  原因  】:当用户滑动列表时,recyclerView会更新下面要显示的item。此时,如果clear了Data,就会造成该异常,因为用户正在滑动列表,需要显示下面的item,但此时数据Data已为空;

【如何发现】:友盟反馈,然后多次测试,果然有次异常;

【如何修复】:***

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.15

【  问题  】:Git :fatal: refusing to merge unrelated histories(拒绝合并无关的历史)

【  原因  】:一个远程分支有了两个不同的本地版本,具有不同的提交历史,导致合并失败

【如何发现】:百度

【如何修复】:使用此命令$git pull origin master --allow-unrelated-histories合并;可以允许不相关历史提交,强制合并;

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.15

【  问题  】:fatal: refusing to merge unrelated histories

                      # Please enter a commit message to explain why this merge is necessary

                      (请输入提交消息来解释为什么这种合并是必要的)

【  原因  】:git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:

【如何发现】:百度

【如何修复】:1.按键盘字母 i 进入insert模式

                      2.修改最上面那行黄色合并信息,可以不修改

                      3.按键盘左上角"Esc"

                      4.输入":wq",注意是冒号+wq,按回车键即可

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.15

【  问题  】:java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{2f4da811 V.E..... R.....I. 0,0-0,0} not attached to window manager

                      (非法参数异常,not attached to window manager:所操作的View没有被纳入window manager的管理)

【  原因  】:多数原因:在dismiss Dialog时,发现创建该Dialog的Activity不存在而导致的。

【如何发现】:百度

【如何修复】:

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.15

【  问题  】:dataBindingGenBaseClassesDebug'. > Parameter 'directory' is not a directory

【  原因  】:

【如何发现】:百度

【如何修复】:删除工程目录下的 .gradle 目录,再重新编译;

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.15

【  问题  】:android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@ac75e3a is not valid; is your activity running?

                      部分代码:

                      public class DialogUtils {

                          public static void showDialog(HomeActivity context) {

                              AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.dialognew);

                          }

                      }     

【  原因  】:因为DialogUtils是全局静态的,当Activity因异常退出时,DialogUtils仍保存着改activity的context,再次创建DialogUtils就会报错。

【如何发现】:

【如何修复】:不使用静态字段static定义,在onDestroy中dismiss();在调用show()方法前,判断isFinish();

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.17

【  问题  】:This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled.

【  原因  】:

【如何发现】:

【如何修复】:在gradle.properties文件中添加:android.useAndroidX=true  然后同步

                                                                      android.enableJetifier=true

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.17

【  问题  】:executing external native build for ndkbuild android.mk

【  原因  】:虚拟定位系列:替换成androidx导致

【如何发现】:

【如何修复】: 改回去,换成android support

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.18

【  问题  】:Manifest merger failed with multiple errors, see logs

【  原因  】:

【如何发现】:

【如何修复】: 打开AndroidManifest.xml,点击左下角Merged Manifest.右边会报错Error:....

【  总结  】:***

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :app:weishangjietu2

【  原因  】:项目中依赖别的module时出现的问题;

【如何发现】:

【如何修复】: 在项目build.gradle(就是引用了别的module的那个项目里的build.gradle)里:加上configuration:'default'

                        implementation project(path: ':xxx', configuration:'default')

【  总结  】:具体原因不详,能修复的原因也不详;

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:android Error: Could not create the Java Virtual Machine.(无法创建虚拟机)

【  原因  】:内存不够?什么内存

【如何发现】:

【如何修复】: 重启as 又可以了

【  总结  】:不管了

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:java.lang.IllegalArgumentException: Comparison method violates its general contract!

【  原因  】:Collections.sort()在JDK6和JDK7中实现的底层排序算法变了,在JDK6中使用的时MergeSort排序,而在JDK7中使用的是TimSort。

                      在JDK7以后,实现Comparable接口后,要满足一下三个特性:

                      1) 自反性:x,y 的比较结果和 y,x 的比较结果相反。

                      2) 传递性:x>y,y>z,则 x>z。

                      3) 对称性:x=y,则 x,z 比较结果和 y,z 比较结果相同。

                      https://www.jianshu.com/p/a65a78fe64f5

                      https://blog.csdn.net/u013066244/article/details/80441214?utm_source=blogxgwz6

【如何发现】:

【如何修复】:

【  总结  】:

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:java.lang.RuntimeException: Canvas: trying to draw too large(110250000bytes)

                                                                            (试图画得太大)

【  原因  】:原因1:图片太大了,修改图片的大小即可解决。

                      原因2: 图片放的位置不合理,如果只有mipmap-*dpi的几个文件夹,没有drawable-*dpi对应的文件夹,只有默认的drawable文件夹,把图片放到drawable文件夹下 就会导致上面的异常

【如何发现】:

【如何修复】:假如你的设备需要drawable-xxhdpi下的资源,那么只需要把图片从drawable移动到drawable-xxhdpi即可解决.

【  总结  】:最后有没有解决问题,尚未可知;

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:java.lang.IllegalArgumentException

at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:81)

【  原因  】:1、文件路径不对

                      2、虽然已经动态申请了权限,但是Android10对权限的管理更加严格了,主要有以下两点:

                            1、权限按单个分配,不再按组分配,以前申请了读存储卡权限,即可获得同组的读写权限,现在需要逐个申请

                            2、存储卡读写权限需要在Application的Manifest清单中声明

                                  Android10.0 需要在AndroidManifest.xml文件中application出加上 android:requestLegacyExternalStorage="true" 

【如何发现】:

【如何修复】: 加上android:requestLegacyExternalStorage="true" 

【  总结  】:

***************************************************************************************************************************************

【  日期  】:2020.07.20

【  问题  】:java.lang.NoSuchMethodError: No virtual method sizeMultiplier                      (F)Lcom/bumptech/glide/request/RequestOptions;

【  原因  】:glide依赖冲突:例:1.当前依赖了glide,依赖的其他第三方框架中也依赖了glide;2.两个第三方框架中都依赖了glide;

【如何发现】:

【如何修复】: 1.删除多余的依赖;2.把冲突的依赖版本改成一致;

【  总结  】:

***************************************************************************************************************************************

【  日期  】:2020.07.22

【  问题  】:ERROR: Failed to open zip file.

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

                      翻译:错误:无法打开zip文件。Gradle的依赖项缓存可能已损坏(有时在网络连接超时后发生)

【  原因  】:

【如何发现】:

【如何修复】: 删除现有的4.10.1-all.zip,保证网络状况,重新构建,问题解决

【  总结  】:

***************************************************************************************************************************************

【  日期  】:2020.07.23

【  问题  】:android studio 处理多个module中含有相同jar包导致的冲突

【  原因  】:

【如何发现】:

【如何修复】: 多个module中要使用到相同jar包会有冲突,可以采用如下方法:

                      如果想要保留module里的libs目录。可以新建一个目录libs_other ,把jar包放进该目录。然后再dependencies里添加                      下列语句:

                        provided files('libs_other/***.jar')

                        ***.jar为你的jar包名称

【  总结  】:

相关文章

  • Bug Board

    记录bug -bash: ./app: no such file or directory Bug产生背景:项目里...

  • BUG 记录

    EditText 光标 textCursorDrawablea. 必须设置图片b. 必须设置大小 下划线andr...

  • BUG 记录

    1、问题:POP某个view出来的时候一直不出现。 原因:程序运行,找了好久才发现,视图上出现两个windo...

  • bug记录

    1、 解决办法:添加SystemConfiguration.framework 2.这个是引用NSDataAddi...

  • Bug记录

    TabLayout如果不设置tabIndicatorColor会抛如下异常 在MIUI上发现某个横向的Recycl...

  • BUG记录

    AccessibilityService 使用不当,影响到了系统音量调节条的延时消失,多达20秒(正常为3-4秒)...

  • bug记录

    1.使用xcodebuild命令编译工程时,提示某些第三方库文件not found xcodebuild -tar...

  • bug记录

    1.linker command failed with exit code 1 (use -v to see i...

  • Bug记录

    【 日期 】:2020.07.06 【 问题 】:android Manifest merger fa...

  • Bug记录

    A RenderFlex overflowed by 740 pixels on the bottom解决方案:一...

网友评论

      本文标题:Bug记录

      本文链接:https://www.haomeiwen.com/subject/beeclktx.html