1. 程式人生 > >8.0之後 java.lang.SecurityException: Permission Denial: null asks to run as user 864 but is calling from user 0; this requires android.permission.INTERA

8.0之後 java.lang.SecurityException: Permission Denial: null asks to run as user 864 but is calling from user 0; this requires android.permission.INTERA

在8.0以下啟動新的activity沒問題,但在8.0系統的手機上就報錯,跳轉不成功

錯誤原因:

目標activity中有如下方法

public int getUserId() {
}
其父類Context.java裡也有該方法 同名了

/**
* Get the userId associated with this context
* @return user id
*
* @hide
*/
@TestApi
public abstract @UserIdInt int getUserId();
導致系統無法判斷是用Context裡面的還是你自己的

解決辦法:

把該activity中的方法改名(例如:getLocalUserId()

)或者修改該getUserId()為private,即可