Skip to content

Commit 2bd7f95

Browse files
committed
Improve launch activity resolution before taking emulator screenshot
1 parent 2e8a075 commit 2bd7f95

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

scripts/run-android-instrumentation-tests.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,23 @@ if adb_target shell monkey -p "$PACKAGE_NAME" -c android.intent.category.LAUNCHE
129129
ra_log "Application launch via monkey succeeded"
130130
else
131131
ra_log "Failed to launch $PACKAGE_NAME via monkey; attempting explicit resolve" >&2
132-
MAIN_ACTIVITY="$(adb_target shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER "$PACKAGE_NAME" 2>/dev/null | tr -d '\r' | tail -n 1)"
133-
MAIN_ACTIVITY="${MAIN_ACTIVITY##* }"
132+
RESOLVE_OUTPUT="$(adb_target shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER "$PACKAGE_NAME" 2>/dev/null | tr -d '\r')"
133+
MAIN_ACTIVITY="$(printf '%s\n' "$RESOLVE_OUTPUT" | awk 'NF && $1 ~ /\// {print $1; exit}')"
134+
if [ -z "$MAIN_ACTIVITY" ]; then
135+
RESOLVE_OUTPUT="$(adb_target shell cmd package resolve-activity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER "$PACKAGE_NAME" 2>/dev/null | tr -d '\r')"
136+
MAIN_ACTIVITY="$(printf '%s\n' "$RESOLVE_OUTPUT" | sed -n 's/.*name=\([^ ]*\).*/\1/p' | head -n 1)"
137+
fi
138+
if [ -n "$MAIN_ACTIVITY" ] && [[ "$MAIN_ACTIVITY" != */* ]]; then
139+
MAIN_ACTIVITY="$PACKAGE_NAME/$MAIN_ACTIVITY"
140+
fi
141+
if [[ -z "$MAIN_ACTIVITY" || "$MAIN_ACTIVITY" != */* ]]; then
142+
RESOLVE_OUTPUT="$(adb_target shell dumpsys package "$PACKAGE_NAME" 2>/dev/null | tr -d '\r')"
143+
MAIN_ACTIVITY="$(printf '%s\n' "$RESOLVE_OUTPUT" | sed -n 's/.*cmp=\([^ ]*\).*/\1/p' | head -n 1)"
144+
fi
134145
if [[ -z "$MAIN_ACTIVITY" || "$MAIN_ACTIVITY" != */* ]]; then
135-
ra_log "Unable to resolve launchable activity for $PACKAGE_NAME (cmd package output: ${MAIN_ACTIVITY:-<empty>})" >&2
146+
OUTPUT_SNIPPET="$(printf '%s\n' "$RESOLVE_OUTPUT" | head -n 5)"
147+
ra_log "Unable to resolve launchable activity for $PACKAGE_NAME; resolve-activity output snippet:" >&2
148+
printf '%s\n' "${OUTPUT_SNIPPET:-<empty>}" >&2
136149
exit 1
137150
fi
138151
ra_log "Resolved main activity $MAIN_ACTIVITY; starting via am"

0 commit comments

Comments
 (0)