From 7b8b3c020ab663eaa3784f56efb079428b3ebb9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E6=B3=93=E9=93=AE?= Date: Sun, 29 Jun 2025 15:22:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=89=8D=E5=8F=B0=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uixt/android_driver_adb.go | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/uixt/android_driver_adb.go b/uixt/android_driver_adb.go index 105cf578..65ca88ed 100644 --- a/uixt/android_driver_adb.go +++ b/uixt/android_driver_adb.go @@ -756,24 +756,22 @@ func (ad *ADBDriver) GetSession() *DriverSession { } func (ad *ADBDriver) ForegroundInfo() (app types.AppInfo, err error) { - packageInfo, err := ad.runShellCommand( - "CLASSPATH=/data/local/tmp/evalite", "app_process", "/", - "com.bytedance.iesqa.eval_process.PackageService", "2>/dev/null") + packageInfo, err := ad.runShellCommand("CLASSPATH=/data/local/tmp/evalite", "app_process", "/", "com.bytedance.iesqa.eval_process.PackageService", "2>/dev/null") if err != nil { - return app, err + packageInfo, err = ad.runShellCommand("CLASSPATH=/data/local/tmp/evalite", "app_process", "/", "com.bytedance.iesqa.eval_process.PackageService", "2>/dev/null") + if err != nil { + log.Error().Err(err).Str("serial", ad.Device.Serial()).Msg("failed to get foreground app") + return app, err + } } - - // Clean packageInfo: remove null bytes that cause JSON parsing issues - packageInfo = strings.ReplaceAll(packageInfo, "\x00", "") - - // Check for empty response after cleaning + log.Info().Str("serial", ad.Device.Serial()).Msg("foreground app output: " + packageInfo) if strings.TrimSpace(packageInfo) == "" { - return app, errors.New("empty response from evalite process") + log.Error().Str("serial", ad.Device.Serial()).Msg("foreground app output is empty") + return app, errors.New("foreground app output is empty") } - - err = json.Unmarshal([]byte(packageInfo), &app) + err = json.Unmarshal([]byte(strings.TrimSpace(packageInfo)), &app) if err != nil { - log.Error().Err(err).Str("packageInfo", packageInfo).Msg("get foreground app failed") + log.Error().Err(err).Str("serial", ad.Device.Serial()).Str("packageInfo", packageInfo).Msg("failed to parse package info") return app, err } return app, nil