[19:49:14][ERROR]<airtest.core.api> Traceback (most recent call last): File "airtest\core\android\adb.py", line 374, in shell File "airtest\core\android\adb.py", line 332, in raw_shell File "airtest\core\android\adb.py", line 197, in cmd airtest.core.error.AdbError: stdout[b''] stderr[b'java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission\r\n\tat android.os.Parcel.createException(Parcel.java:2074)\r\n\tat android.os.Parcel.readException(Parcel.java:2042)\r\n\tat android.os.Parcel.readException(Parcel.java:1990)\r\n\tat android.hardware.input.IInputManager$Stub$Proxy.injectInputEvent(IInputManager.java:991)\r\n\tat android.hardware.input.InputManager.injectInputEvent(InputManager.java:886)\r\n\tat com.android.commands.input.Input.injectMotionEvent(Input.java:428)\r\n\tat com.android.commands.input.Input.access$200(Input.java:41)\r\n\tat com.android.commands.input.Input$InputTap.sendTap(Input.java:224)\r\n\tat com.android.commands.input.Input$InputTap.run(Input.java:218)\r\n\tat com.android.commands.input.Input.onRun(Input.java:108)\r\n\tat com.android.internal.os.BaseCommand.run(BaseCommand.java:56)\r\n\tat com.android.commands.input.Input.main(Input.java:71)\r\n\tat com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)\r\n\tat com.android.internal.os.RuntimeInit.main(RuntimeInit.java:380)\r\nCaused by: android.os.RemoteException: Remote stack trace:\r\n\tat com.android.server.input.InputManagerService.injectInputEventInternal(InputManagerService.java:754)\r\n\tat com.android.server.input.InputManagerService.injectInputEvent(InputManagerService.java:728)\r\n\tat android.hardware.input.IInputManager$Stub.onTransact(IInputManager.java:451)\r\n\tat android.os.Binder.execTransactInternal(Binder.java:1021)\r\n\tat android.os.Binder.execTransact(Binder.java:994)\r\n\r\n'] During handling of the above exception, another exception occurred:
时间: 2023-10-27 22:07:14 浏览: 220
根据提供的错误信息,看起来你遇到了一个关于 ADB 权限的问题。错误信息中提到了 "Injecting to another application requires INJECT_EVENTS permission",这是因为你的应用需要 INJECT_EVENTS 权限才能向其他应用程序注入事件。
要解决这个问题,你可以尝试以下几个步骤:
1. 确保你的设备已经开启了开发者选项,并且 ADB 已经获得了足够的权限。你可以在设备上的设置中找到开发者选项,并确保 ADB 调试选项已经打开。
2. 重新连接设备并运行 BAT 命令。有时设备连接过一段时间后,ADB 权限会丢失,重新连接设备可能会解决权限问题。
3. 尝试使用以下命令来授予 INJECT_EVENTS 权限:
```
adb shell pm grant <package_name> android.permission.INJECT_EVENTS
```
请将 `<package_name>` 替换为你要注入事件的应用程序的包名。
4. 如果以上步骤没有解决问题,你可以尝试在设备上手动授予 INJECT_EVENTS 权限。在设备上打开应用的设置页面,找到 "权限" 或 "高级权限管理",然后查找并授予应用程序 INJECT_EVENTS 权限。
如果尝试了上述步骤仍然无法解决问题,请确保你的设备和应用程序的设置没有其他限制,可能需要查看设备或应用程序的文档或社区论坛,寻找更多关于 INJECT_EVENTS 权限的解决方案。
阅读全文