【Trick】adb指令运行时出现 Error: Activity class {xxx} does not exist.

本人在尝试冷启动查看某APP的等待时间时,出现以下报错:

字面意思是,某个文件/目录无法访问。

(而且这个问题只出现在某些安卓设备上)

网上搜索过后,有些资料说是要么文件真的不存在,要么是设备权限不够。

于是本人就猜测是否是权限不够的问题,果断开启了adb root,并重新执行了该adb指令,发现不会出现报错了,如下图:

综上所述,解决方案如下:

1:开启安卓设备的root权限

adb root

2:执行其他adb指令,此处为查看某APP启动相关的时间

adb shell am start -W [activity]

在C#程序中直接使用ADB(Android Debug Bridge)命令行工具输入`Ctrl + C`通常是不可能的,因为ADB是一个终端工具,而C#是在.NET环境下的语言,两者交互通常通过编写脚本或者使用API间接实现。 如果你想要在C#程序中模拟按下`Ctrl + C`中断操作,你可以利用`System.Diagnostics.Process`类来启动一个新的进程并发送键盘输入。但这并不意味着可以直接控制另一个程序的行为,比如ADB。一种可能的做法是在C#中创建一个批处理文件或者PowerShell脚本来发送ADB命令,然后在C#程序里调用这个外部脚本。 下面是一个简单的例子,展示如何在C#中启动一个新进程并发送特定的按键组合: ```csharp using System.Diagnostics; public void SendCtrlCToADB(string adbPath, string targetProcess) { ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = adbPath; psi.Arguments = $"shell input keyevent 3"; // Key event for Ctrl+C (KEYCODE_CTRL_C) psi.UseShellExecute = false; // Required for sending key events psi.RedirectStandardInput = true; // Redirect standard input using (Process p = new Process()) { p.StartInfo = psi; p.Start(); // Sending the keyboard event p.StandardInput.WriteLine("echo"); // Trick to send a newline after pressing Ctrl+C p.StandardInput.WriteLine("\033[2~"); // Actual Ctrl+C sequence (ASCII escape code for Ctrl+C) } } ``` 请注意这只是一个理论示例,实际应用中可能需要额外的错误处理和权限管理。而且这种方式并不保证能精确地模拟出在终端环境中按`Ctrl + C`的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorleyOlsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值