1.Process: com.crowd_sourcing.llj.crowdsourceclient, PID: 32572
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:605)
原因:Provider不匹配。
解决:仔细检查AndroidManifest.xml中provider标签的authorities属性值和
FileProvider.getUriForFile()
中的authority参数是否一致,如果在authorities找不到authority就会出现NullPointerException。
2.android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] dat=...
原因:找不到处理对应Intent的Activity。
解决:在使用隐式Intent时先使用PackageManager.resolveActivity判断一下,是否存在对应的Activity,若不存在,不要再去调用startActivity(intent)方法。
3.Data truncation: Truncated incorrect DOUBLE value: '{}'
原因:这个问题是我sql的update语句写错出现的,这里留作记录
解决:这个是我SQL的问题,将
update tb_message
set msg_content='{}' and is_read = 1
where msg_id = 84;
改成
update tb_message
set msg_content='{}',
is_read=1
where msg_id = 84;
即可。
4.Caused by: java.lang.SecurityException: Call from user 0 as user -1 without permission INTERACT_ACROSS_USERS or INTERACT_ACROSS_USERS_FULL not allowed.
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.accessibility.AccessibilityManagerService$SecurityPolicy.resolveCallingUserIdEnforcingPermissionsLocked(AccessibilityManagerService.java:3560)
原因:我出现这个问题的原因是,我的Application自定义了int getUserId()方法,而Application继承的Context类中已经包含这个方法,导致出现这个权限问题。
解决:将自己的getUserId()方法进行改名。
5.Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file ...
原因:查看Stackoverflow说这个是bug,说是v4包中的ViewCompat没有实现OnUnhandledKeyEventListener接口
解决:这里我的问题得到解决,不一定适用你的情况:
将style文件中parent的属性值Theme.AppCompat.Light.DarkActionBar(你的可能不一样,至少要包含Theme.AppCompat吧)
改为Base.Theme.AppCompat.Light.DarkActionBar
6.Configuration error
java.io.FileNotFoundException: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/logging.properties (No such file or directory)
原因:看起来是找不到jre中的logging.properties不存在,但事实是我的Tomcat的conf中的logging.properties也不存在,应该是不小心删除了吧。
解决:从正常的Tomcat中复制一份conf中的logging.properties文件到同样的文件夹,应该就能解决问题;该文件是默认的配置,你可以继续自行自定义。
7.com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.sina.com, 25; timeout -1;
原因:阿里云为了安全,禁用了25端口。
解决:使用SSL连接的465端口来发送,可以参考这篇文章:Java Web stmp发送带附件邮件(附SSL版)_java_脚本之家 https://www.jb51.net/article/140630.htm
8.java.lang.RuntimeException: Unable to start activity ComponentInfo{com.csasc.joining/com.crowd_sourcing.llj.crowdsource.activity.CSCommonActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f090388 (com.csasc.joining:id/fragment_container) for fragment PublishTaskFragment{d7a773a #0 id=0x7f090388}
原因:情况之一是嵌套Fragment没有使用getChildFragmentManager()而使用的是getSupportFragmentManager();情况之二是id对应的View不是setContentView()中layout的子View,也就是该id不能是根布局的id,(经过测试,似乎作为根布局id也没问题);我这里的原因是,将该包含该id(fragment_container)的布局文件被另一个module中的同名layout文件给覆盖了。
解决:修改其中的一个layout文件的文件名即可。