打印:
java.lang.SecurityException: Permission Denial: reading com.dream.tutorsplanpush.LauncherContentProvider uri content://com.dream.tutorsplanpush.launchercontentprovider/launcher_msfdb/480770 from pid=30061, uid=10153 requires null, or grantUriPermission()
提示感觉是缺少权限,但是requires null,实际并不缺少任何权限。
原因:
1、Application中有getUserId()方法,会莫名其妙地被调用,导致出错,可以改个方法名即可,例如改为getMyUserId()就没事了。
2、方法在本人代码中确定没有调用,但是打印结果是被调用到,所以可能是一些第三方的框架之类的调用到。
3、推测有可能是极光推送或者Netroid下载里面有反射调用之类的引起。
4、虽然无法找到真正原因,但通过改方法名已经解决问题。
后续:
发现Context类中存在着getUserId方法,而Application间接继承Context,虽然还不清楚什么导致,不过可能跟这个有关系。
/**
* Get the userId associated with this context
* @return user id
*
* @hide
*/
@TestApi
public abstract @UserIdInt int getUserId();