从不受信任的UID呼叫

时间:2018-07-16 11:30:46

标签: java android testing uiautomator

当我在Android Studio中运行UIAutomator时,有时会显示崩溃。

 W/ActivityManager: Crash of app com.example.testsample running instrumentation ComponentInfo{com.example.testsample.test/android.support.test.runner.AndroidJUnitRunner}
07-16 19:19:34.191 7834-7850/? W/Binder: Binder call failed.
java.lang.SecurityException: Calling from not trusted UID!
    at android.app.UiAutomationConnection.throwIfCalledByNotTrustedUidLocked(UiAutomationConnection.java:427)
    at android.app.UiAutomationConnection.shutdown(UiAutomationConnection.java:324)
    at android.app.IUiAutomationConnection$Stub.onTransact(IUiAutomationConnection.java:209)
    at android.os.Binder.execTransact(Binder.java:570)

但并非每次都显示。如果没有显示,我可以成功运行。 谁能帮我? 谢谢。

1 个答案:

答案 0 :(得分:0)

private void throwIfCalledByNotTrustedUidLocked() {
    final int callingUid = Binder.getCallingUid();
    if (callingUid != mOwningUid && mOwningUid != Process.SYSTEM_UID
            && callingUid != 0 /*root*/) {
        throw new SecurityException("Calling from not trusted UID!");
    }
}

这是引发错误的方法。 uid可能与进程uid不同,或者该设备上的uid不是root。也许您可以在您的应用程序中添加一些打印件以进行查找。