AdvancedSharpAdbClient icon indicating copy to clipboard operation
AdvancedSharpAdbClient copied to clipboard

deviceClient.StartApp("com.android.app"); doesn't work

Open evolution1987 opened this issue 1 year ago • 20 comments

Describe the bug

HI! I have updated package from 2.5.8 to 3.0.9 buy found that deviceClient.StartApp("com.android.app"); doesn't open apk on smartphone There are no errors in log. I use NET Framework 4.8

Steps to reproduce the bug

  1. Install facebook apk
  2. deviceClient.StartApp("com.facebook.katana");

Expected behavior

No response

Screenshots

No response

NuGet package version

3.0.9

.NET Platform

.NET Framework 4.8.x

Platform type

Windows

System version

windows 10 pro

IDE

Visual Studio 2022

Additional context

No response

evolution1987 avatar Feb 07 '24 15:02 evolution1987

It works on my device...

https://github.com/SharpAdb/AdvancedSharpAdbClient/assets/27689196/bf3e1a35-db1d-4db1-a2d8-4fc8c9ebfcdb

wherewhere avatar Feb 08 '24 04:02 wherewhere

On my visual studio Start app works on 2.5.8 version but not in 3.0.9

evolution1987 avatar Feb 08 '24 07:02 evolution1987

.net4.8 also works. Try using client.StartApp(device, "com.bilibili.app.in")

Screenshot_20240208-195941_Termux.png

wherewhere avatar Feb 08 '24 12:02 wherewhere

Here is my code. App installed but can't run. The problem is on all android smartphones package version 3.0.9, in 2.5.8 there is no problem but problem is with getting elements on adroid 9

logger.Info($"Thread {Thread.CurrentThread.ManagedThreadId} Start work");
string adb = textBox1.Text;
if (!AdbServer.Instance.GetStatus().IsRunning)
{
    AdbServer server = new AdbServer();
    StartServerResult result = server.StartServer($"{adb}", false);
    if (result != StartServerResult.Started)
    {
        Console.WriteLine("Can't start adb server");
    }
}

          

var client = new AdbClient();
var serial = client.GetDevices().FirstOrDefault().Serial;
client.Connect(serial);
var deviceData = client.GetDevices().FirstOrDefault();
string fbApp = textBox2.Text;
var deviceClient = new DeviceClient(client, deviceData);
//install APK
PackageManager manager = new PackageManager(client, deviceData);
try
{
    manager.InstallPackage($"{fbApp}", callback: null);
    logger.Info($"Thread {Thread.CurrentThread.ManagedThreadId} installed apk");
}
catch (Exception ex)
{
    logger.Error($"Can't send keyevent:{ex.Message}");
}
//start Facebook
logger.Info($"Thread {Thread.CurrentThread.ManagedThreadId} start Facebook");
try
{
    deviceClient.StartApp("com.facebook.katana");


} catch (Exception ex)
{
    logger.Error($"Thread {Thread.CurrentThread.ManagedThreadId} {ex.Message}");
}

evolution1987 avatar Feb 08 '24 13:02 evolution1987

So what's your old code?

wherewhere avatar Feb 08 '24 13:02 wherewhere

This code with 3.0.9 version and StartApp doesn't work

evolution1987 avatar Feb 08 '24 15:02 evolution1987

But it works on my device. I need to know the difference to figure out what happened... And why you connect a connected device?

wherewhere avatar Feb 08 '24 17:02 wherewhere

var serial = client.GetDevices().FirstOrDefault().Serial; // You get the first connected device's serial.
client.Connect(serial); // Then you connect it again.
var deviceData = client.GetDevices().FirstOrDefault(); // Now I don't know which device you would get...

And StartApp is sending monkey -p xxx 1 to the Android shell. You can try to using adb shell monkey -p xxx 1 on adb command line.

wherewhere avatar Feb 08 '24 17:02 wherewhere

You are right but in any case I can't start apk after installing, comman doesn't run application, nothing happens. But all works on 2.5.8 So I think there is some promler in latest version of Advanced Sharp Adb I try to found whre is problem Can you show actual examples on real smartphone or maybe you need test on facebook apk?

evolution1987 avatar Feb 08 '24 17:02 evolution1987

var client = new AdbClient();
AdbServer.Instance.StartServer("adb/to/your/path", false);
client.Connect("ip:port")
var device = new DeviceClient(client, client.GetDevices().First());
device.StartApp("packagename");

wherewhere avatar Feb 08 '24 17:02 wherewhere

Tell me please, in method client.Connect("ip:port") can I use name of device as ip:port?

evolution1987 avatar Feb 08 '24 17:02 evolution1987

No, you can only use ip and port like 192.168.1.19:37146. If you connected with USB, you can ignore it.

wherewhere avatar Feb 08 '24 17:02 wherewhere

So, if I connect my smartphone via USB I can ignore the line client.Connect("ip:port")?

evolution1987 avatar Feb 08 '24 17:02 evolution1987

Yes.

wherewhere avatar Feb 08 '24 17:02 wherewhere

Thank you very much, I will try to discover my problem again

evolution1987 avatar Feb 08 '24 17:02 evolution1987

Hello! I can run app using shell as you said me, but comand StartApp from documentaion doesn't work for me. In any case, you can help me, thanks

evolution1987 avatar Feb 09 '24 12:02 evolution1987

Same issue, 2.5.8 runs well, but 3.0.9+ cannot start the app event if the shell command runs ok. Now I still use 2.5.8. :(

tinngv avatar Feb 22 '24 09:02 tinngv

I don't know what happened...

wherewhere avatar Feb 22 '24 14:02 wherewhere

Change code to await device.StartAppAsync("packagename") it works fine :)

tinngv avatar Feb 22 '24 14:02 tinngv

I have no idea...

wherewhere avatar Feb 22 '24 14:02 wherewhere