【 日期 】: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包名称
【 总结 】:
网友评论