wix / Detox

Gray box end-to-end testing and automation framework for mobile apps
https://wix.github.io/Detox/
MIT License
11.13k stars 1.91k forks source link

Android tests fail to start on Bitrise #3978

Open owens-ben opened 1 year ago

owens-ben commented 1 year ago

What happened?

After going through much debugging with Bitrise support we believe there is some kind of issue with the launchApp() function. It's either timing out or just not running at all.

https://support.bitrise.io/hc/en-us/requests/36123

I ran a "dummy" test with no app launch and that seems to run fine.

Here is the stack dump from when this happens.

Detox v 20.5.0

+------------------------------------------------------------------------------+
| id: script                                                                   |
| version: 1.1.5                                                               |
| collection: https://github.com/bitrise-io/bitrise-steplib.git                |
| toolkit: bash                                                                |
| time: 2023-03-13T16:30:23Z                                                   |
+------------------------------------------------------------------------------+
|                                                                              |
+ export APP_MODE=mocked
+ APP_MODE=mocked
+ detox test --configuration android.emu.generic e2e/Regression/helpCenter.e2e.ts --start --record-logs all --loglevel debug --detectOpenHandles --debug-synchronization 5000
16:30:28.636 detox[7923] i ws-server Detox server listening on localhost:34693...
16:30:28.654 detox[7923] B lifecycle jest --config e2e/jest.config.ts --detectOpenHandles e2e/Regression/helpCenter.e2e.ts
16:30:33.037 detox[7923] B ws-server connection :34693<->:56970
16:30:33.198 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/emulator/emulator" -list-avds --verbose
16:30:33.257 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/emulator/emulator" -version 
16:30:33.589 detox[7935] i device Detected emulator binary version { major: 31, minor: 3, patch: 14, toString: [Function: toString] }
16:30:33.591 detox[7935] i device:ALLOCATE_DEVICE Trying to allocate a device based on "emulator"
16:30:33.594 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb"  devices
16:30:33.619 detox[7935] i child-process:EXEC_SUCCESS List of devices attached
emulator-5554   device
16:30:33.642 detox[7935] i device:DEVICE_LOOKUP Found a matching & free device emulator-5554
16:30:33.646 detox[7935] i device:ALLOCATE_DEVICE Settled on emulator-5554
16:30:33.647 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "getprop dev.bootcomplete"
16:30:33.688 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "getprop ro.build.version.sdk"
16:30:33.720 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global animator_duration_scale 0"
16:30:33.763 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global window_animation_scale 0"
16:30:33.804 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global transition_animation_scale 0"
16:30:33.849 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "dumpsys power | grep \"^[ ]*m[UW].*=\""
16:30:33.958 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump badging "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk"
16:30:33.997 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list packages com.myapp.app.qa"
16:30:34.041 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 uninstall com.myapp.app.qa
16:30:34.236 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list packages com.myapp.app.qa.test"
16:30:34.305 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.myapp.app.qa"
16:30:34.358 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump xmlstrings "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk" AndroidManifest.xml
16:30:34.384 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump xmlstrings "/bitrise/src/android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk" AndroidManifest.xml
16:30:34.409 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "rm -fr /data/local/tmp/detox"
16:30:34.456 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "mkdir -p /data/local/tmp/detox"
16:30:34.503 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 push "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk" "/data/local/tmp/detox/Application.apk"
16:30:35.475 detox[7935] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk
16:30:37.181 detox[7935] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk exited with code #0
16:30:37.184 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 push "/bitrise/src/android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk" "/data/local/tmp/detox/Test.apk"
16:30:37.275 detox[7935] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk
16:30:37.458 detox[7935] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk exited with code #0
16:30:37.461 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.myapp.app.qa"
16:30:44.214 detox[7935] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -f /sdcard/163033184_0.log"
16:30:44.230 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.myapp.app.qa"
16:30:44.307 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\""
16:30:44.380 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 reverse tcp:34693 tcp:34693
16:30:44.423 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list instrumentation"
16:30:44.535 detox[7935] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:34693 -e detoxSessionId 252b5613-e558-e969-b82e-4ba84d4ddd60 -e debug false com.myapp.app.qa.test/androidx.test.runner.AndroidJUnitRunner
16:30:44.540 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell du /sdcard/163033184_0.log
16:30:45.041 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "ps | grep \"com\.myapp\.app\.qa$\""
16:30:46.314 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\""
16:30:46.402 detox[7935] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -f /sdcard/163033184_0.log" terminated with SIGINT
16:30:46.439 detox[7935] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -T \"03-13 16:30:45.000\" --pid=6834 -f /sdcard/163033184_0.log"
16:30:46.741 detox[7935] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell du /sdcard/163033184_0.log
16:31:32.595 detox[7935] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:34693 -e detoxSessionId 252b5613-e558-e969-b82e-4ba84d4ddd60 -e debug false com.myapp.app.qa.test/androidx.test.runner.AndroidJUnitRunner exited with code #0
16:31:32.597 detox[7935] i device An error occurred while waiting for the app to become ready. Waiting for disconnection...
  error: Failed to run application on the device

  HINT: Most likely, your main activity has crashed prematurely.

  Native stacktrace dump:
  java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.myapp.app.qa/com.myapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1678725046008 and now the last time the queue went idle was: 1678725046201. If these numbers are the same your activity might be hogging the event queue.
    at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509)
    at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376)
    at com.wix.detox.Detox.runTests(Detox.java:140)
    at com.wix.detox.Detox.runTests(Detox.java:103)
    at com.myapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34)

What was the expected behaviour?

No response

Was it tested on latest Detox?

Did your test throw out a timeout?

Help us reproduce this issue!

No response

In what environment did this happen?

Detox version: 20.5.0 React Native version: 0.70.6 Has Fabric (React Native's new rendering system) enabled: (yes/no) Node version: Device model: Android version: 31 Test-runner (select one): jest

Detox logs

Detox logs ``` paste logs here! ```

Device logs

Device logs ``` paste your device.log here! ```

More data, please!

No response

owens-ben commented 1 year ago

Bump?

owens-ben commented 1 year ago
TRACE level log dump ``` BUILD SUCCESSFUL in 12m 47s 774 actionable tasks: 497 executed, 277 from cache 16:16:25.432 detox[6650] B lifecycle node_modules/.bin/detox test --configuration android.emu.Pixel4.android_12.qa.debug -d -l log.txt --configuration android.emu.generic e2e/Regression/test.e2e.ts --start --record-logs all --loglevel trace --detectOpenHandles --debug-synchronization 500 --artifacts-location /bitrise/deploy data: { "id": "8f787342-d42e-255b-08a3-a529b114e22b", "detoxConfig": { "configurationName": "android.emu.generic", "apps": { "default": { "type": "android.apk", "binaryPath": "android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk", "testBinaryPath": "android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk", "build": "ENVFILE=.env && cd android && ./gradlew assembleQaDebug assembleQaDebugAndroidTest -DtestBuildType=debug && cd .." } }, "artifacts": { "rootDir": "/bitrise/deploy/android.emu.generic.2023-04-04 16-16-25Z", "plugins": { "log": { "enabled": true, "keepOnlyFailedTestsArtifacts": false }, "screenshot": { "enabled": true, "shouldTakeAutomaticSnapshots": false, "keepOnlyFailedTestsArtifacts": false }, "video": { "enabled": false, "keepOnlyFailedTestsArtifacts": false }, "instruments": { "enabled": false, "keepOnlyFailedTestsArtifacts": false }, "uiHierarchy": { "enabled": false, "keepOnlyFailedTestsArtifacts": false } } }, "behavior": { "init": { "keepLockFile": false, "reinstallApp": true, "exposeGlobals": true }, "cleanup": { "shutdownDevice": false }, "launchApp": "auto" }, "cli": { "artifactsLocation": "/bitrise/deploy", "recordLogs": "all", "configuration": "android.emu.generic", "debugSynchronization": 500, "loglevel": "trace", "start": true }, "device": { "type": "android.emulator", "device": { "avdName": "emulator" } }, "logger": { "level": "trace", "overrideConsole": true, "options": { "showLoggerName": true, "showPid": true, "showLevel": false, "showMetadata": false, "basepath": "/bitrise/src/node_modules/detox/src", "prefixers": {}, "stringifiers": {} } }, "testRunner": { "retries": 0, "forwardEnv": false, "bail": false, "jest": { "setupTimeout": 120000, "teardownTimeout": 30000, "retryAfterCircusRetries": false, "reportSpecs": false, "reportWorkerAssign": false }, "args": { "$0": "jest", "_": [ "e2e/Regression/test.e2e.ts" ], "config": "e2e/jest.config.ts", "detectOpenHandles": true, "--": [] }, "$0": "jest" }, "session": { "autoStart": true, "debugSynchronization": 500 } }, "detoxIPCServer": "primary-6650", "testResults": [], "testSessionIndex": 0, "workersCount": 0 } 16:16:25.460 detox[6650] i ipc Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/detox.primary-6650 16:16:25.464 detox[6650] i ipc starting server on /tmp/detox.primary-6650 16:16:25.464 detox[6650] i ipc starting TLS server false 16:16:25.465 detox[6650] i ipc starting server as Unix || Windows Socket 16:16:25.474 detox[6650] i ws-server Detox server listening on localhost:36351... 16:16:25.475 detox[6650] i lifecycle Serialized the session state at: /tmp/8f787342-d42e-255b-08a3-a529b114e22b.detox.json 16:16:25.480 detox[6650] B lifecycle jest --config e2e/jest.config.ts --detectOpenHandles e2e/Regression/test.e2e.ts 16:16:29.843 detox[6662] i ipc Service path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + id 16:16:29.852 detox[6662] i ipc requested connection to primary-6650 /tmp/detox.primary-6650 16:16:29.853 detox[6662] i ipc Connecting client on Unix Socket : /tmp/detox.primary-6650 16:16:29.856 detox[6650] i ipc ## socket connection to server detected ## 16:16:29.858 detox[6662] i ipc retrying reset 16:16:29.861 detox[6662] i ipc dispatching event to primary-6650 /tmp/detox.primary-6650 : registerContext , { id: 'secondary-6662' } 16:16:29.865 detox[6650] i ipc received event of : registerContext { id: 'secondary-6662' } 16:16:29.866 detox[6650] i ipc dispatching event to socket : registerContextDone { testResults: [], testSessionIndex: 0 } 16:16:29.867 detox[6662] i ipc ## received events ## 16:16:29.869 detox[6662] i ipc detected event registerContextDone { testResults: [], testSessionIndex: 0 } 16:16:29.984 detox[6662] B lifecycle e2e/Regression/test.e2e.ts 16:16:30.004 detox[6662] B lifecycle set up environment 16:16:30.006 detox[6662] i ipc dispatching event to primary-6650 /tmp/detox.primary-6650 : registerWorker , { workerId: 'w1' } 16:16:30.007 detox[6650] i ipc received event of : registerWorker { workerId: 'w1' } 16:16:30.007 detox[6650] i ipc dispatching event to socket : registerWorkerDone { workersCount: 1 } 16:16:30.008 detox[6650] i ipc broadcasting event to all known sockets listening to /tmp/detox.primary-6650 : sessionStateUpdate { workersCount: 1 } 16:16:30.008 detox[6662] i ipc ## received events ## 16:16:30.009 detox[6662] i ipc detected event registerWorkerDone { workersCount: 1 } 16:16:30.192 detox[6662] i ipc ## received events ## 16:16:30.194 detox[6662] i ipc detected event sessionStateUpdate { workersCount: 1 } 16:16:30.198 detox[6650] B ws-server@37866 connection :36351<->:37866 16:16:30.200 detox[6662] i ws-client opened web socket to: ws://localhost:36351 16:16:30.203 detox[6662] i ws-client send message data: {"type":"login","params":{"sessionId":"fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a","role":"tester"},"messageId":0} 16:16:30.206 detox[6650] i ws-server@37866 get data: {"type":"login","params":{"sessionId":"fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a","role":"tester"},"messageId":0} 16:16:30.206 detox[6650] i ws-server created session fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a 16:16:30.207 detox[6650] i ws-server@37866 send data: { "type": "loginSuccess", "params": { "testerConnected": true, "appConnected": false }, "messageId": 0 } 16:16:30.208 detox[6650] i ws-server tester joined session fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a 16:16:30.208 detox[6662] i ws-client get message data: {"type":"loginSuccess","params":{"testerConnected":true,"appConnected":false},"messageId":0} 16:16:30.322 detox[6662] B device allocate args: ({"type":"android.emulator","device":{"avdName":"emulator"}}) 16:16:30.324 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/emulator/emulator" -list-avds --verbose 16:16:30.378 detox[6662] i child-process:EXEC_SUCCESS emulator 16:16:30.380 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/emulator/emulator" -version 16:16:30.701 detox[6662] i child-process:EXEC_SUCCESS INFO | Duplicate loglines will be removed, if you wish to see each indiviudal line launch with the -log-nofilter flag. Android emulator version 31.3.14.0 (build_id 9322596) (CL:N/A) Copyright (C) 2006-2017 The Android Open Source Project and many others. This program is a derivative of the QEMU CPU emulator (www.qemu.org). This software is licensed under the terms of the GNU General Public License version 2, as published by the Free Software Foundation, and may be copied, distributed, and modified under those terms. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16:16:30.704 detox[6662] i device Detected emulator binary version { major: 31, minor: 3, patch: 14, toString: [Function: toString] } 16:16:30.705 detox[6662] i device:ALLOCATE_DEVICE Trying to allocate a device based on "emulator" 16:16:30.708 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" devices 16:16:30.759 detox[6662] i child-process:EXEC_SUCCESS List of devices attached emulator-5554 device 16:16:30.763 detox[6662] i device:TELNET_CONNECTING port: 5554, host: localhost 16:16:30.800 detox[6662] i device:DEVICE_LOOKUP Found a matching & free device emulator-5554 16:16:30.806 detox[6662] i device:ALLOCATE_DEVICE Settled on emulator-5554 16:16:30.807 detox[6662] B device _launchEmulator args: ("emulator", "emulator-5554", true, {"port":null}) 16:16:30.808 detox[6662] B device _awaitEmulatorBoot args: ("emulator-5554") 16:16:30.808 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "getprop dev.bootcomplete" 16:16:30.951 detox[6662] i child-process:EXEC_SUCCESS 1 16:16:30.954 detox[6662] E device _awaitEmulatorBoot 16:16:30.954 detox[6662] B artifacts-manager onBootDevice args: ({"deviceId":"emulator-5554","type":"emulator","coldBoot":false}) 16:16:30.955 detox[6662] E artifacts-manager onBootDevice 16:16:30.955 detox[6662] E device _launchEmulator 16:16:30.956 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "getprop ro.build.version.sdk" 16:16:30.991 detox[6662] i child-process:EXEC_SUCCESS 31 16:16:30.993 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global animator_duration_scale 0" 16:16:31.043 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.045 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global window_animation_scale 0" 16:16:31.086 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.088 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "settings put global transition_animation_scale 0" 16:16:31.129 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.132 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "dumpsys power | grep \"^[ ]*m[UW].*=\"" 16:16:31.234 detox[6662] i child-process:EXEC_SUCCESS mWakefulness=Awake mWakefulnessChanging=false mWakeLockSummary=0x0 mWakeUpWhenPluggedOrUnpluggedConfig=false mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false mUserActivityTimeoutOverrideFromWindowManager=-1 mUserInactiveOverrideFromWindowManager=false mUserId=0 mWakeLockSummary=0x0 mUserInteractionBackoffMillis=60000 16:16:31.237 detox[6662] E device allocate 16:16:31.274 detox[6662] B device installUtilBinaries args: () 16:16:31.274 detox[6662] E device installUtilBinaries 16:16:31.275 detox[6662] B device selectApp args: ("default") 16:16:31.292 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump badging "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk" 16:16:31.330 detox[6662] i child-process:EXEC_SUCCESS package: name='com.mycompanyapp.app.qa' versionCode='8012345' versionName='2.2.0' platformBuildVersionName='13' platformBuildVersionCode='33' compileSdkVersion='33' compileSdkVersionCodename='13' install-location:'preferExternal' sdkVersion:'28' targetSdkVersion:'33' uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW' uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' uses-permission: name='android.permission.BLUETOOTH' maxSdkVersion='30' uses-permission: name='android.permission.BLUETOOTH_ADMIN' maxSdkVersion='30' uses-permission: name='android.permission.BLUETOOTH_SCAN' uses-permission: name='android.permission.BLUETOOTH_CONNECT' uses-permission: name='android.permission.ACCESS_FINE_LOCATION' uses-permission: name='android.permission.ACCESS_COARSE_LOCATION' uses-permission: name='android.permission.ACCESS_NETWORK_STATE' uses-permission: name='android.permission.MODIFY_AUDIO_SETTINGS' uses-permission: name='android.permission.INTERNET' uses-permission: name='android.permission.READ_PHONE_STATE' uses-permission: name='android.permission.CAMERA' uses-permission: name='android.permission.RECORD_AUDIO' uses-permission: name='com.google.android.gms.permission.AD_ID' uses-permission: name='android.permission.POST_NOTIFICATIONS' uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' uses-permission: name='android.permission.ACCESS_WIFI_STATE' uses-permission: name='android.permission.WAKE_LOCK' uses-permission: name='com.google.android.c2dm.permission.RECEIVE' uses-permission: name='android.permission.READ_CALENDAR' uses-permission: name='android.permission.WRITE_CALENDAR' uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE' uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' uses-permission: name='android.permission.FOREGROUND_SERVICE' uses-permission: name='android.permission.VIBRATE' uses-permission: name='android.permission.USE_FULL_SCREEN_INTENT' uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM' uses-permission: name='android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS' maxSdkVersion='30' uses-permission: name='android.permission.ACCESS_NOTIFICATION_POLICY' uses-permission: name='android.permission.BROADCAST_STICKY' uses-permission: name='android.permission.CALL_PHONE' application-label:'Enhance Select' application-label-af:'Enhance Select' application-label-am:'Enhance Select' application-label-ar:'Enhance Select' application-label-as:'Enhance Select' application-label-az:'Enhance Select' application-label-be:'Enhance Select' application-label-bg:'Enhance Select' application-label-bn:'Enhance Select' application-label-bs:'Enhance Select' application-label-ca:'Enhance Select' application-label-cs:'Enhance Select' application-label-da:'Enhance Select' application-label-de:'Enhance Select' application-label-el:'Enhance Select' application-label-en-AU:'Enhance Select' application-label-en-CA:'Enhance Select' application-label-en-GB:'Enhance Select' application-label-en-IN:'Enhance Select' application-label-en-XC:'Enhance Select' application-label-es:'Enhance Select' application-label-es-419:'Enhance Select' application-label-es-US:'Enhance Select' application-label-et:'Enhance Select' application-label-eu:'Enhance Select' application-label-fa:'Enhance Select' application-label-fi:'Enhance Select' application-label-fr:'Enhance Select' application-label-fr-CA:'Enhance Select' application-label-gl:'Enhance Select' application-label-gu:'Enhance Select' application-label-hi:'Enhance Select' application-label-hr:'Enhance Select' application-label-hu:'Enhance Select' application-label-hy:'Enhance Select' application-label-in:'Enhance Select' application-label-is:'Enhance Select' application-label-it:'Enhance Select' application-label-iw:'Enhance Select' application-label-ja:'Enhance Select' application-label-ka:'Enhance Select' application-label-kk:'Enhance Select' application-label-km:'Enhance Select' application-label-kn:'Enhance Select' application-label-ko:'Enhance Select' application-label-ky:'Enhance Select' application-label-lo:'Enhance Select' application-label-lt:'Enhance Select' application-label-lv:'Enhance Select' application-label-mk:'Enhance Select' application-label-ml:'Enhance Select' application-label-mn:'Enhance Select' application-label-mr:'Enhance Select' application-label-ms:'Enhance Select' application-label-my:'Enhance Select' application-label-nb:'Enhance Select' application-label-ne:'Enhance Select' application-label-nl:'Enhance Select' application-label-or:'Enhance Select' application-label-pa:'Enhance Select' application-label-pl:'Enhance Select' application-label-pt:'Enhance Select' application-label-pt-BR:'Enhance Select' application-label-pt-PT:'Enhance Select' application-label-ro:'Enhance Select' application-label-ru:'Enhance Select' application-label-si:'Enhance Select' application-label-sk:'Enhance Select' application-label-sl:'Enhance Select' application-label-sq:'Enhance Select' application-label-sr:'Enhance Select' application-label-sr-Latn:'Enhance Select' application-label-sv:'Enhance Select' application-label-sw:'Enhance Select' application-label-ta:'Enhance Select' application-label-te:'Enhance Select' application-label-th:'Enhance Select' application-label-tl:'Enhance Select' application-label-tr:'Enhance Select' application-label-uk:'Enhance Select' application-label-ur:'Enhance Select' application-label-uz:'Enhance Select' application-label-vi:'Enhance Select' application-label-zh:'Enhance Select' application-label-zh-CN:'Enhance Select' application-label-zh-HK:'Enhance Select' application-label-zh-TW:'Enhance Select' application-label-zu:'Enhance Select' application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-65535:'res/mipmap-anydpi-v26/ic_launcher.xml' application: label='Enhance Select' icon='res/mipmap-anydpi-v26/ic_launcher.xml' application-debuggable launchable-activity: name='com.mycompanyapp.app.MainActivity' label='Enhance Select' icon='' feature-group: label='' uses-gl-es: '0x20000' uses-feature-not-required: name='android.hardware.bluetooth' uses-feature-not-required: name='android.hardware.camera' uses-feature-not-required: name='android.hardware.camera.autofocus' uses-feature-not-required: name='android.hardware.microphone' uses-feature-not-required: name='android.hardware.telephony' uses-feature: name='android.hardware.faketouch' uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' uses-feature: name='android.hardware.location' uses-implied-feature: name='android.hardware.location' reason='requested android.permission.ACCESS_COARSE_LOCATION permission, and requested android.permission.ACCESS_FINE_LOCATION permission' uses-feature: name='android.hardware.screen.portrait' uses-implied-feature: name='android.hardware.screen.portrait' reason='one or more activities have specified a portrait orientation' uses-feature: name='android.hardware.wifi' uses-implied-feature: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission' main other-activities other-receivers other-services supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-419' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'hi' 'hr' 'hu' 'hy' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh' 'zh-CN' 'zh-HK' 'zh-TW' 'zu' densities: '120' '160' '240' '320' '480' '640' '65534' '65535' native-code: 'x86_64' 16:16:31.332 detox[6662] E device selectApp 16:16:31.333 detox[6662] B device uninstallApp args: () 16:16:31.333 detox[6662] B artifacts-manager onBeforeUninstallApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:31.334 detox[6662] E artifacts-manager onBeforeUninstallApp 16:16:31.334 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list packages com.mycompanyapp.app.qa" 16:16:31.382 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.385 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list packages com.mycompanyapp.app.qa.test" 16:16:31.425 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.427 detox[6662] E device uninstallApp 16:16:31.427 detox[6662] B device selectApp args: ("default") 16:16:31.428 detox[6662] B device terminateApp args: () 16:16:31.428 detox[6662] B artifacts-manager onBeforeTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:31.429 detox[6662] E artifacts-manager onBeforeTerminateApp 16:16:31.429 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.mycompanyapp.app.qa" 16:16:31.473 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.475 detox[6662] B artifacts-manager onTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:31.476 detox[6662] E artifacts-manager onTerminateApp 16:16:31.476 detox[6662] E device terminateApp 16:16:31.476 detox[6662] E device selectApp 16:16:31.476 detox[6662] B device installApp args: () 16:16:31.477 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump xmlstrings "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk" AndroidManifest.xml 16:16:31.501 detox[6662] i child-process:EXEC_SUCCESS String pool of 293 unique UTF-16 non-sorted strings, 293 entries and 0 styles using 23828 bytes: String #0: theme String #1: label String #2: icon String #3: name String #4: permission String #5: enabled String #6: debuggable String #7: exported String #8: process String #9: taskAffinity String #10: stateNotNeeded String #11: excludeFromRecents String #12: authorities String #13: initOrder String #14: grantUriPermissions String #15: priority String #16: launchMode String #17: screenOrientation String #18: configChanges String #19: value String #20: resource String #21: scheme String #22: host String #23: pathPrefix String #24: minSdkVersion String #25: versionCode String #26: versionName String #27: windowSoftInputMode String #28: noHistory String #29: targetSdkVersion String #30: maxSdkVersion String #31: allowBackup String #32: glEsVersion String #33: required String #34: installLocation String #35: hardwareAccelerated String #36: usesCleartextTraffic String #37: autoVerify String #38: resizeableActivity String #39: supportsPictureInPicture String #40: directBootAware String #41: networkSecurityConfig String #42: roundIcon String #43: visibleToInstantApps String #44: compileSdkVersion String #45: compileSdkVersionCodename String #46: appComponentFactory String #47: foregroundServiceType String #48: allowNativeHeapPointerTagging String #49: usesPermissionFlags String #50: String #51: /jes/ String #52: 13 String #53: 2.2.0 String #54: :playcore_missing_splits_activity String #55: GlideModule String #56: action String #57: activity String #58: android String #59: android.app.action.APP_BLOCK_STATE_CHANGED String #60: android.app.action.NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED String #61: android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED String #62: android.app.action.SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED String #63: android.hardware.bluetooth String #64: android.hardware.camera String #65: android.hardware.camera.autofocus String #66: android.hardware.microphone String #67: android.hardware.telephony String #68: android.intent.action.ACTION_POWER_CONNECTED String #69: android.intent.action.ACTION_POWER_DISCONNECTED String #70: android.intent.action.BATTERY_LOW String #71: android.intent.action.BATTERY_OKAY String #72: android.intent.action.BOOT_COMPLETED String #73: android.intent.action.DEVICE_STORAGE_LOW String #74: android.intent.action.DEVICE_STORAGE_OK String #75: android.intent.action.DIAL String #76: android.intent.action.EDIT String #77: android.intent.action.GET_CONTENT String #78: android.intent.action.MAIN String #79: android.intent.action.QUICKBOOT_POWERON String #80: android.intent.action.SEND String #81: android.intent.action.SENDTO String #82: android.intent.action.TIMEZONE_CHANGED String #83: android.intent.action.TIME_SET String #84: android.intent.action.VIEW String #85: android.intent.category.BROWSABLE String #86: android.intent.category.DEFAULT String #87: android.intent.category.LAUNCHER String #88: android.media.action.IMAGE_CAPTURE String #89: android.net.conn.CONNECTIVITY_CHANGE String #90: android.permission.ACCESS_COARSE_LOCATION String #91: android.permission.ACCESS_FINE_LOCATION String #92: android.permission.ACCESS_NETWORK_STATE String #93: android.permission.ACCESS_NOTIFICATION_POLICY String #94: android.permission.ACCESS_WIFI_STATE String #95: android.permission.BIND_JOB_SERVICE String #96: android.permission.BLUETOOTH String #97: android.permission.BLUETOOTH_ADMIN String #98: android.permission.BLUETOOTH_CONNECT String #99: android.permission.BLUETOOTH_SCAN String #100: android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS String #101: android.permission.BROADCAST_STICKY String #102: android.permission.CALL_PHONE String #103: android.permission.CAMERA String #104: android.permission.DUMP String #105: android.permission.FOREGROUND_SERVICE String #106: android.permission.INTERNET String #107: android.permission.MODIFY_AUDIO_SETTINGS String #108: android.permission.POST_NOTIFICATIONS String #109: android.permission.READ_CALENDAR String #110: android.permission.READ_EXTERNAL_STORAGE String #111: android.permission.READ_PHONE_STATE String #112: android.permission.RECEIVE_BOOT_COMPLETED String #113: android.permission.RECORD_AUDIO String #114: android.permission.SCHEDULE_EXACT_ALARM String #115: android.permission.SYSTEM_ALERT_WINDOW String #116: android.permission.USE_FULL_SCREEN_INTENT String #117: android.permission.VIBRATE String #118: android.permission.WAKE_LOCK String #119: android.permission.WRITE_CALENDAR String #120: android.permission.WRITE_EXTERNAL_STORAGE String #121: android.settings.action.MANAGE_OVERLAY_PERMISSION String #122: android.support.FILE_PROVIDER_PATHS String #123: androidx.core.app.CoreComponentFactory String #124: androidx.core.content.FileProvider String #125: androidx.emoji2.text.EmojiCompatInitializer String #126: androidx.lifecycle.ProcessLifecycleInitializer String #127: androidx.room.MultiInstanceInvalidationService String #128: androidx.startup String #129: androidx.startup.InitializationProvider String #130: androidx.work.WorkManagerInitializer String #131: androidx.work.diagnostics.REQUEST_DIAGNOSTICS String #132: androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy String #133: androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy String #134: androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy String #135: androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy String #136: androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver String #137: androidx.work.impl.background.systemalarm.RescheduleReceiver String #138: androidx.work.impl.background.systemalarm.SystemAlarmService String #139: androidx.work.impl.background.systemalarm.UpdateProxies String #140: androidx.work.impl.background.systemjob.SystemJobService String #141: androidx.work.impl.diagnostics.DiagnosticsReceiver String #142: androidx.work.impl.foreground.SystemForegroundService String #143: androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver String #144: app.notifee.core.AlarmPermissionBroadcastReceiver String #145: app.notifee.core.BlockStateBroadcastReceiver String #146: app.notifee.core.ForegroundService String #147: app.notifee.core.NotificationAlarmReceiver String #148: app.notifee.core.NotificationReceiverActivity String #149: app.notifee.core.RebootBroadcastReceiver String #150: app.notifee.core.ReceiverService String #151: app_data_collection_default_enabled String #152: application String #153: backend:com.google.android.datatransport.cct.CctBackendFactory String #154: category String #155: cct String #156: com.bumptech.glide.integration.okhttp3.OkHttpGlideModule String #157: com.facebook.react.devsupport.DevSettingsActivity String #158: com.google.android.c2dm.intent.RECEIVE String #159: com.google.android.c2dm.permission.RECEIVE String #160: com.google.android.c2dm.permission.SEND String #161: com.google.android.datatransport.runtime.backends.TransportBackendDiscovery String #162: com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver String #163: com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService String #164: com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE String #165: com.google.android.gms.auth.api.signin.RevocationBoundService String #166: com.google.android.gms.auth.api.signin.internal.SignInHubActivity String #167: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION String #168: com.google.android.gms.common.api.GoogleApiActivity String #169: com.google.android.gms.measurement.AppMeasurementJobService String #170: com.google.android.gms.measurement.AppMeasurementReceiver String #171: com.google.android.gms.measurement.AppMeasurementService String #172: com.google.android.gms.permission.AD_ID String #173: com.google.android.gms.version String #174: com.google.android.play.core.assetpacks.AssetPackExtractionService String #175: com.google.android.play.core.common.PlayCoreDialogWrapperActivity String #176: com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity String #177: com.google.firebase.INSTANCE_ID_EVENT String #178: com.google.firebase.MESSAGING_EVENT String #179: com.google.firebase.components.ComponentDiscoveryService String #180: com.google.firebase.components.ComponentRegistrar String #181: com.google.firebase.components:com.google.firebase.abt.component.AbtRegistrar String #182: com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar String #183: com.google.firebase.components:com.google.firebase.analytics.ktx.FirebaseAnalyticsKtxRegistrar String #184: com.google.firebase.components:com.google.firebase.crashlytics.CrashlyticsRegistrar String #185: com.google.firebase.components:com.google.firebase.crashlytics.ktx.FirebaseCrashlyticsKtxRegistrar String #186: com.google.firebase.components:com.google.firebase.crashlytics.ndk.CrashlyticsNdkRegistrar String #187: com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar String #188: com.google.firebase.components:com.google.firebase.iid.Registrar String #189: com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar String #190: com.google.firebase.components:com.google.firebase.ktx.FirebaseCommonKtxRegistrar String #191: com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar String #192: com.google.firebase.components:com.google.firebase.perf.FirebasePerfRegistrar String #193: com.google.firebase.components:com.google.firebase.remoteconfig.RemoteConfigRegistrar String #194: com.google.firebase.components:io.invertase.firebase.app.ReactNativeFirebaseAppRegistrar String #195: com.google.firebase.iid.FirebaseInstanceIdReceiver String #196: com.google.firebase.messaging.FirebaseMessagingService String #197: com.google.firebase.messaging.default_notification_channel_id String #198: com.google.firebase.messaging.default_notification_color String #199: com.google.firebase.perf.provider.FirebasePerfProvider String #200: com.google.firebase.provider.FirebaseInitProvider String #201: com.htc.intent.action.QUICKBOOT_POWERON String #202: com.iterable.iterableapi.IterableFirebaseMessagingService String #203: com.iterable.iterableapi.IterablePushActionReceiver String #204: com.iterable.iterableapi.IterableTrampolineActivity String #205: com.iterable.push.ACTION_PUSH_ACTION String #206: com.mycompanyapp.app.mycompanyappFCMListenerService String #207: com.mycompanyapp.app.MainActivity String #208: com.mycompanyapp.app.MainApplication String #209: com.mycompanyapp.app.qa String #210: com.mycompanyapp.app.qa.SentryInitProvider String #211: com.mycompanyapp.app.qa.SentryPerformanceProvider String #212: com.mycompanyapp.app.qa.androidx-startup String #213: com.mycompanyapp.app.qa.fileprovider String #214: com.mycompanyapp.app.qa.firebaseinitprovider String #215: com.mycompanyapp.app.qa.firebaseperfprovider String #216: com.mycompanyapp.app.qa.mono.embeddinator.AndroidRuntimeProvider.__mono_init__ String #217: com.mycompanyapp.app.qa.notifee-init-provider String #218: com.mycompanyapp.app.qa.reactnativefirebaseappinitprovider String #219: com.mycompanyapp.app.qa.reactnativefirebasecrashlyticsinitprovider String #220: com.reactnativecommunity.webview.RNCWebViewFileProvider String #221: com.wix.reactnativenotifications.core.ProxyService String #222: com.wix.reactnativenotifications.fcm.FcmInstanceIdListenerService String #223: com.wix.reactnativenotifications.fcm.FcmInstanceIdRefreshHandlerService String #224: com.zipow.videobox.CallInActivity String #225: com.zipow.videobox.ConfActivityNormal String #226: com.zipow.videobox.GreenRoomTransformActivity String #227: com.zipow.videobox.InMeetingSettingsActivity String #228: com.zipow.videobox.IntegrationActivity String #229: com.zipow.videobox.JoinByURLActivity String #230: com.zipow.videobox.JoinMeetingFailActivity String #231: com.zipow.videobox.MeetingEndMessageActivity String #232: com.zipow.videobox.PListActivity String #233: com.zipow.videobox.SimpleActivity String #234: com.zipow.videobox.SimpleInMeetingActivity String #235: com.zipow.videobox.ZmPollingActivity String #236: com.zipow.videobox.confapp.meeting.videoeffects.VideoEffectsActivity String #237: com.zipow.videobox.conference.ui.ZmFoldableConfActivity String #238: com.zipow.videobox.kubi.KubiService String #239: com.zipow.videobox.share.ScreenShareServiceForSDK String #240: data String #241: firebase_analytics_collection_deactivated String #242: firebase_analytics_collection_enabled String #243: firebase_crashlytics_collection_enabled String #244: firebase_messaging_auto_init_enabled String #245: firebase_performance_collection_deactivated String #246: firebase_performance_collection_enabled String #247: gnsdk.Native_gnsdk String #248: google_analytics_adid_collection_enabled String #249: google_analytics_automatic_screen_reporting_enabled String #250: google_analytics_default_allow_ad_personalization_signals String #251: google_analytics_ssaid_collection_enabled String #252: http String #253: http://schemas.android.com/apk/res/android String #254: https String #255: intent String #256: intent-filter String #257: io.invertase.firebase.app.ReactNativeFirebaseAppInitProvider String #258: io.invertase.firebase.crashlytics.ReactNativeFirebaseCrashlyticsInitProvider String #259: io.invertase.firebase.messaging.ReactNativeFirebaseMessagingHeadlessService String #260: io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver String #261: io.invertase.firebase.messaging.ReactNativeFirebaseMessagingService String #262: io.invertase.notifee.NotifeeInitProvider String #263: io.sentry.android.core.SentryInitProvider String #264: io.sentry.android.core.SentryPerformanceProvider String #265: io.sentry.auto-init String #266: mycompanyname String #267: mycompanyname.com String #268: listenmycompanyapp.com String #269: mailto String #270: manifest String #271: meta-data String #272: mono.embeddinator.AndroidRuntimeProvider String #273: mono.embeddinator.classname String #274: package String #275: platformBuildVersionCode String #276: platformBuildVersionName String #277: provider String #278: qa-web.mycompanyname.com String #279: queries String #280: receiver String #281: service String #282: sms String #283: smsto String #284: us.zoom.androidlib.app.ZMFileListActivity String #285: us.zoom.internal.helper.PrivacyDisclaimerActivity String #286: us.zoom.videomeetings.intent.action.CallMyPhone String #287: us.zoom.videomeetings.intent.action.JoinBeforeHost String #288: us.zoom.videomeetings.intent.action.MeetingInvite String #289: uses-feature String #290: uses-permission String #291: uses-sdk String #292: youtube.com 16:16:31.503 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/build-tools/33.0.0/aapt" dump xmlstrings "/bitrise/src/android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk" AndroidManifest.xml 16:16:31.524 detox[6662] i child-process:EXEC_SUCCESS String pool of 41 unique UTF-16 non-sorted strings, 41 entries and 0 styles using 2044 bytes: String #0: theme String #1: label String #2: name String #3: debuggable String #4: exported String #5: targetPackage String #6: handleProfiling String #7: functionalTest String #8: minSdkVersion String #9: targetSdkVersion String #10: compileSdkVersion String #11: compileSdkVersionCodename String #12: 13 String #13: Tests for com.mycompanyapp.app.qa String #14: action String #15: activity String #16: android String #17: android.intent.action.MAIN String #18: android.permission.REORDER_TASKS String #19: android.test.runner String #20: androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity String #21: androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity String #22: androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity String #23: androidx.test.orchestrator String #24: androidx.test.runner.AndroidJUnitRunner String #25: androidx.test.services String #26: application String #27: com.google.android.apps.common.testing.services String #28: com.mycompanyapp.app.qa String #29: com.mycompanyapp.app.qa.test String #30: http://schemas.android.com/apk/res/android String #31: instrumentation String #32: intent-filter String #33: manifest String #34: package String #35: platformBuildVersionCode String #36: platformBuildVersionName String #37: queries String #38: uses-library String #39: uses-permission String #40: uses-sdk 16:16:31.526 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "rm -fr /data/local/tmp/detox" 16:16:31.562 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.564 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "mkdir -p /data/local/tmp/detox" 16:16:31.598 detox[6662] i child-process:EXEC_SUCCESS 16:16:31.600 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 push "/bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk" "/data/local/tmp/detox/Application.apk" 16:16:32.650 detox[6662] i child-process:EXEC_SUCCESS /bitrise/src/android/app/build/outputs/apk/qa/debug/app-qa-x86_64-debug.apk: 1 file pushed, 0 skipped. 173.3 MB/s (172857256 bytes in 0.951s) 16:16:32.687 detox[6662] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk 16:16:35.002 detox[6662] i child-process:SPAWN_STDOUT Success 16:16:35.008 detox[6662] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk exited with code #0 16:16:35.010 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 push "/bitrise/src/android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk" "/data/local/tmp/detox/Test.apk" 16:16:35.139 detox[6662] i child-process:EXEC_SUCCESS /bitrise/src/android/app/build/outputs/apk/androidTest/qa/debug/app-qa-debug-androidTest.apk: 1 file pushed, 0 skipped. 135.4 MB/s (5667105 bytes in 0.040s) 16:16:35.172 detox[6662] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk 16:16:35.687 detox[6662] i child-process:SPAWN_STDOUT Success 16:16:35.699 detox[6662] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk exited with code #0 16:16:35.702 detox[6662] E device installApp 16:16:35.703 detox[6662] B device selectApp args: ("default") 16:16:35.704 detox[6662] B device terminateApp args: () 16:16:35.705 detox[6662] B artifacts-manager onBeforeTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:35.706 detox[6662] E artifacts-manager onBeforeTerminateApp 16:16:35.706 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.mycompanyapp.app.qa" 16:16:35.915 detox[6662] i child-process:EXEC_SUCCESS 16:16:35.918 detox[6662] B artifacts-manager onTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:35.919 detox[6662] E artifacts-manager onTerminateApp 16:16:35.919 detox[6662] E device terminateApp 16:16:35.919 detox[6662] E device selectApp 16:16:35.920 detox[6662] E lifecycle set up environment 16:16:43.292 detox[6662] B lifecycle run the tests 16:16:43.292 detox[6662] B artifacts-manager onRunDescribeStart args: ({"name":"ROOT_DESCRIBE_BLOCK"}) 16:16:43.293 detox[6662] E artifacts-manager onRunDescribeStart 16:16:43.295 detox[6662] B lifecycle TEST 16:16:43.295 detox[6662] B artifacts-manager onRunDescribeStart args: ({"name":"TEST"}) 16:16:43.295 detox[6662] E artifacts-manager onRunDescribeStart 16:16:43.298 detox[6662] B lifecycle DO NOTHING TEST 16:16:43.299 detox[6662] B artifacts-manager onTestStart args: ({"title":"DO NOTHING TEST","fullName":"TEST DO NOTHING TEST","status":"running","invocations":1}) 16:16:43.300 detox[6662] i artifact:ARTIFACT_START starting ADBLogcatRecording 16:16:43.347 detox[6662] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -f /sdcard/161630301_0.log" 16:16:43.350 detox[6662] E artifacts-manager onTestStart 16:16:43.350 detox[6662] B lifecycle beforeEach 16:16:43.353 detox[6662] E lifecycle beforeEach 16:16:43.355 detox[6662] B lifecycle beforeEach 16:16:43.357 detox[6662] B device launchApp args: ({"newInstance":true}) 16:16:43.358 detox[6662] B device terminateApp args: ("com.mycompanyapp.app.qa") 16:16:43.359 detox[6662] B artifacts-manager onBeforeTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:43.359 detox[6662] E artifacts-manager onBeforeTerminateApp 16:16:43.360 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "am force-stop com.mycompanyapp.app.qa" 16:16:43.443 detox[6662] i child-process:EXEC_SUCCESS 16:16:43.446 detox[6662] B artifacts-manager onTerminateApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa"}) 16:16:43.447 detox[6662] E artifacts-manager onTerminateApp 16:16:43.447 detox[6662] E device terminateApp 16:16:43.448 detox[6662] B artifacts-manager onBeforeLaunchApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa","launchArgs":{"detoxServer":"ws://localhost:36351","detoxSessionId":"fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a"}}) 16:16:43.449 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" 16:16:43.540 detox[6662] i child-process:EXEC_SUCCESS 04-04 16:16:42.000 16:16:43.543 detox[6662] E artifacts-manager onBeforeLaunchApp 16:16:43.544 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 reverse tcp:36351 tcp:36351 16:16:43.611 detox[6662] i child-process:EXEC_SUCCESS 36351 16:16:43.614 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "pm list instrumentation" 16:16:43.666 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell du /sdcard/161630301_0.log 16:16:43.735 detox[6662] i child-process:EXEC_SUCCESS instrumentation:com.mycompanyapp.app.qa.test/androidx.test.runner.AndroidJUnitRunner (target=com.mycompanyapp.app.qa) 16:16:43.787 detox[6662] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:36351 -e detoxSessionId fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a -e debug false com.mycompanyapp.app.qa.test/androidx.test.runner.AndroidJUnitRunner 16:16:43.790 detox[6662] i child-process:EXEC_SUCCESS 4 /sdcard/161630301_0.log 16:16:44.291 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "ps | grep \"com\.mycompanyapp\.app\.qa$\"" 16:16:44.433 detox[6662] i child-process:EXEC_SUCCESS u0_a145 6868 323 14353484 99012 0 0 R com.mycompanyapp.app.qa 16:16:44.437 detox[6662] B artifacts-manager onLaunchApp args: ({"deviceId":"emulator-5554","bundleId":"com.mycompanyapp.app.qa","launchArgs":{"detoxServer":"ws://localhost:36351","detoxSessionId":"fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a"},"pid":6868}) 16:16:44.438 detox[6662] i artifact:ARTIFACT_START starting ADBLogcatRecording 16:16:44.438 detox[6662] i artifact:ARTIFACT_STOP stopping ADBLogcatRecording 16:16:44.438 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" 16:16:44.513 detox[6662] i child-process:EXEC_SUCCESS 04-04 16:16:43.000 16:16:44.523 detox[6662] i child-process:SPAWN_KILL sending SIGINT to: /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell logcat -f /sdcard/161630301_0.log 16:16:44.527 detox[6662] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -f /sdcard/161630301_0.log" terminated with SIGINT 16:16:44.574 detox[6662] i child-process:SPAWN_CMD /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -T \"04-04 16:16:43.000\" --pid=6868 -f /sdcard/161630301_0.log" 16:16:44.576 detox[6662] E artifacts-manager onLaunchApp 16:16:44.876 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell du /sdcard/161630301_0.log 16:16:44.940 detox[6662] i child-process:EXEC_SUCCESS 8180 /sdcard/161630301_0.log 16:16:45.649 detox[6662] i child-process:SPAWN_STDOUT INSTRUMENTATION_STATUS: class=com.mycompanyapp.app.DetoxTest INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS: id=AndroidJUnitRunner INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stream= com.mycompanyapp.app.DetoxTest: 16:16:45.652 detox[6662] i child-process:SPAWN_STDOUT INSTRUMENTATION_STATUS: test=runDetoxTests INSTRUMENTATION_STATUS_CODE: 1 16:17:30.703 detox[6662] i child-process:SPAWN_STDOUT INSTRUMENTATION_STATUS: class=com.mycompanyapp.app.DetoxTest INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS: id=AndroidJUnitRunner INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stack=java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) INSTRUMENTATION_STATUS: stream= Error in runDetoxTests(com.mycompanyapp.app.DetoxTest): java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) INSTRUMENTATION_STATUS: test=runDetoxTests INSTRUMENTATION_STATUS_CODE: -2 16:17:32.792 detox[6662] i child-process:SPAWN_STDOUT INSTRUMENTATION_RESULT: stream= Time: 46.644 There was 1 failure: 1) runDetoxTests(com.mycompanyapp.app.DetoxTest) java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) at java.lang.reflect.Method.invoke(Native Method) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at androidx.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:549) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at androidx.test.ext.junit.runners.AndroidJUnit4.run(AndroidJUnit4.java:162) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56) at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:444) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2248) FAILURES!!! Tests run: 1, Failures: 1 INSTRUMENTATION_CODE: -1 16:17:32.937 detox[6662] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:36351 -e detoxSessionId fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a -e debug false com.mycompanyapp.app.qa.test/androidx.test.runner.AndroidJUnitRunner exited with code #0 16:17:32.942 detox[6662] i device An error occurred while waiting for the app to become ready. Waiting for disconnection... error: Failed to run application on the device HINT: Most likely, your main activity has crashed prematurely. Native stacktrace dump: java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) 16:17:32.942 detox[6662] i device The app disconnected. 16:17:32.943 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 reverse --remove tcp:36351 16:17:32.999 detox[6662] E device launchApp error: Failed to run application on the device HINT: Most likely, your main activity has crashed prematurely. Native stacktrace dump: java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) 16:17:33.001 detox[6662] B artifacts-manager onHookFailure args: ({"error":{"name":"DetoxRuntimeError"},"hook":"beforeEach"}) 16:17:33.001 detox[6662] E artifacts-manager onHookFailure 16:17:33.001 detox[6662] E lifecycle beforeEach error: Failed to run application on the device HINT: Most likely, your main activity has crashed prematurely. Native stacktrace dump: java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) 16:17:33.003 detox[6662] B lifecycle test_fn 16:17:33.006 detox[6662] B artifacts-manager onTestDone args: ({"title":"DO NOTHING TEST","fullName":"TEST DO NOTHING TEST","status":"failed","invocations":1,"timedOut":false}) 16:17:33.007 detox[6662] i artifact:ARTIFACT_STOP stopping ADBLogcatRecording 16:17:33.007 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" 16:17:33.052 detox[6662] i child-process:EXEC_SUCCESS 16:17:33.082 detox[6662] i child-process:EXEC_SUCCESS 04-04 16:17:32.000 16:17:33.086 detox[6662] i child-process:SPAWN_KILL sending SIGINT to: /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell logcat -T "04-04 16:16:43.000" --pid=6868 -f /sdcard/161630301_0.log 16:17:33.090 detox[6662] i child-process:SPAWN_END /opt/android-sdk-linux/platform-tools/adb -s emulator-5554 shell "logcat -T \"04-04 16:16:43.000\" --pid=6868 -f /sdcard/161630301_0.log" terminated with SIGINT 16:17:33.094 detox[6662] E artifacts-manager onTestDone 16:17:33.095 detox[6662] E lifecycle test_fn 16:17:33.099 detox[6662] B artifacts-manager onRunDescribeFinish args: ({"name":"TEST"}) 16:17:33.099 detox[6662] E artifacts-manager onRunDescribeFinish 16:17:33.099 detox[6662] E lifecycle DO NOTHING TEST 16:17:33.100 detox[6662] B artifacts-manager onRunDescribeFinish args: ({"name":"ROOT_DESCRIBE_BLOCK"}) 16:17:33.101 detox[6662] E artifacts-manager onRunDescribeFinish 16:17:33.101 detox[6662] E lifecycle TEST 16:17:33.117 detox[6662] B lifecycle tear down environment 16:17:33.119 detox[6662] B artifacts-manager onBeforeCleanup args: () 16:17:33.123 detox[6662] i artifact:ARTIFACT_SAVE saving ADBLogcatRecording to: /bitrise/deploy/android.emu.generic.2023-04-04 16-16-25Z/✗ TEST DO NOTHING TEST/device.log 16:17:33.124 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 pull "/sdcard/161630301_0.log" "/bitrise/deploy/android.emu.generic.2023-04-04 16-16-25Z/✗ TEST DO NOTHING TEST/device.log" 16:17:33.231 detox[6662] i child-process:EXEC_SUCCESS /sdcard/161630301_0.log: 1 file pulled, 0 skipped. 129.9 MB/s (8478619 bytes in 0.062s) 16:17:33.233 detox[6662] i child-process:EXEC_CMD "/opt/android-sdk-linux/platform-tools/adb" -s emulator-5554 shell "rm \"/sdcard/161630301_0.log\"" 16:17:33.316 detox[6662] i child-process:EXEC_SUCCESS 16:17:33.329 detox[6662] i artifact:ARTIFACT_SAVE saving FileArtifact to: /bitrise/deploy/android.emu.generic.2023-04-04 16-16-25Z/detox_pid_6662.json.log { append: true } 16:17:33.331 detox[6662] i artifact:ARTIFACT_SAVE saving FileArtifact to: /bitrise/deploy/android.emu.generic.2023-04-04 16-16-25Z/detox_pid_6662.log { append: true } 16:17:33.331 detox[6662] E artifacts-manager onBeforeCleanup 16:17:33.332 detox[6662] i ws-client:APP_UNREACHABLE Detox can't seem to connect to the test app(s)! HINT: The test app might have crashed prematurely, or has had trouble setting up the connection. Refer to our troubleshooting guide, for full details: https://wix.github.io/Detox/docs/troubleshooting/running-tests#tests-execution-hangs 16:17:33.340 detox[6650] i ws-server tester exited session fe0366dd-3b3f-d8d8-6ea6-a1fa039d510a 16:17:33.341 detox[6650] E ws-server@37866 connection :36351<->:37866 16:17:33.340 detox[6662] B device free args: ({"adbName":"emulator-5554"}, {"shutdown":false}) 16:17:33.350 detox[6662] E device free 16:17:33.351 detox[6662] E lifecycle tear down environment 16:17:33.351 detox[6662] E lifecycle run the tests FAIL e2e/Regression/test.e2e.ts (63.13 s) TEST ✕ DO NOTHING TEST (49707 ms) ● TEST › DO NOTHING TEST Failed to run application on the device HINT: Most likely, your main activity has crashed prematurely. Native stacktrace dump: java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.mycompanyapp.app.qa/com.mycompanyapp.app.MainActivity (has extras) } within 45000 milliseconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1680625004909 and now the last time the queue went idle was: 1680625004909. If these numbers are the same your activity might be hogging the event queue. at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:509) at androidx.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:376) at com.wix.detox.Detox.runTests(Detox.java:140) at com.wix.detox.Detox.runTests(Detox.java:103) at com.mycompanyapp.app.DetoxTest.runDetoxTests(DetoxTest.java:34) 4 | describe('TEST', () => { 5 | beforeEach(async () => { > 6 | await device.launchApp({ newInstance: true }); | ^ 7 | await verifyText('Sign In', 60000); 8 | }); 9 | at Object. (e2e/Regression/test.e2e.ts:6:18) 16:17:33.364 detox[6662] i ipc dispatching event to primary-6650 /tmp/detox.primary-6650 : reportTestResults , { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', testExecError: undefined, isPermanentFailure: false } ] } 16:17:33.366 detox[6650] i ipc received event of : reportTestResults { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', isPermanentFailure: false } ] } 16:17:33.367 detox[6650] i ipc dispatching event to socket : reportTestResultsDone { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', isPermanentFailure: false } ] } 16:17:33.367 detox[6650] i ipc broadcasting event to all known sockets listening to /tmp/detox.primary-6650 : sessionStateUpdate { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', isPermanentFailure: false } ] } 16:17:33.368 detox[6662] i ipc ## received events ## 16:17:33.371 detox[6662] i ipc detected event reportTestResultsDone { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', isPermanentFailure: false } ] } 16:17:33.390 detox[6662] i ipc ## received events ## 16:17:33.392 detox[6662] i ipc detected event sessionStateUpdate { testResults: [ { success: false, testFilePath: '/bitrise/src/e2e/Regression/test.e2e.ts', isPermanentFailure: false } ] } 16:17:33.400 detox[6650] i ipc socket disconnected secondary-6662 16:17:33.403 detox[6662] i ipc connection closed primary-6650 /tmp/detox.primary-6650 0 tries remaining of 0 16:17:33.406 detox[6662] i ipc secondary-6662 exceeded connection rety amount of or stopRetrying flag set. 16:17:33.567 detox[6650] E lifecycle Command failed with exit code = 1: jest --config e2e/jest.config.ts --detectOpenHandles e2e/Regression/test.e2e.ts 16:17:33.569 detox[6650] i ws-server Detox server has been closed gracefully 16:17:33.570 detox[6650] E lifecycle node_modules/.bin/detox test --configuration android.emu.Pixel4.android_12.qa.debug -d -l log.txt --configuration android.emu.generic e2e/Regression/test.e2e.ts --start --record-logs all --loglevel trace --detectOpenHandles --debug-synchronization 500 --artifacts-location /bitrise/deploy error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. exit status 1 ```

It seems like the issue may relate to some kind of 45000 ms timeout in the code.

I see this in node_modules/detox/src/devices/common/drivers/android/exec/ADB.js:

const INSTALL_TIMEOUT = 45000; // TODO Double check 45s makes sense

So it seems like there was some debate about whether this is right.

I used patch-package to change this to 300000 and it still times out, claiming the 45000 timeout!!

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.

Thank you for your contributions!

For more information on bots in this repository, read this discussion.

d4vidi commented 1 year ago

I see this in node_modules/detox/src/devices/common/drivers/android/exec/ADB.js: const INSTALL_TIMEOUT = 45000; // TODO Double check 45s makes sense So it seems like there was some debate about whether this is right. I used patch-package to change this to 300000 and it still times out, claiming the 45000 timeout!!

The installation appears to be successful, so this timeout is irrelevant. You might be able to extend it via a native Detox config but I think 45seconds is way more than enough.

Important question: Does this usuually work on your local computer? In any case, you might like to review device (native) logs (i.e. using adb logcat) in order to look up an error that might have crashed your app or something along those lines.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.

Thank you for your contributions!

For more information on bots in this repository, read this discussion.

owens-ben commented 1 year ago

@d4vidi yes, it works locally. Since then I was able to configure it to run with iOS on an M1 machine. I will be returning to this issue shortly as we still have the need for Android tests.

owens-ben commented 1 year ago

Here's what I tried to debug:

sshing into the bitrise machine and running the command manually - same result

I was able to dump the logcat logs but its so long and full of errors that may or may not be relevant. please advise how to proceed.

d4vidi commented 1 year ago

Consider installing pidcat on the bitrise machine and then - instead of adb logcat, run pidcat <package name>. This should help cut through the irrelevant noise in the log. Alternatively, use detox test <...> --record-logs all and dig up the device.log file from artifacts once the run is completed.

owens-ben commented 1 year ago

@d4vidi thanks for the advice.

I was able to get the full device log, if you want to take a look.

device.log

I see lots of errors so not sure which one might actually be making the app hang, perhaps this one?

07-06 15:32:27.342 6354 6499 I AppLinksHostsVerifierV2: Verification com.myorg.app.qa complete. Successful hosts: links-qa.myotherorg.com,qa-web.myotherorg.com. Failed hosts: *.myotherorg.com. Error hosts: . [CONTEXT service_id=244 ]

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.

Thank you for your contributions!

For more information on bots in this repository, read this discussion.

stale[bot] commented 11 months ago

The issue has been closed for inactivity.

owens-ben commented 11 months ago

Still an issue.

owens-ben commented 10 months ago

Still an issue. I revisited this and tried a couple suggestions from around the internet.

I tried starting the Metro bundler in a separate command yarn start & (this seemed to solve other issues). I also stopped and started the adb server before initiating the tests.

I'm now seeing this generic JS looper error being output.

20:50:41.839 detox[7027] i ws-server@55587 send
  data: {
    "type": "currentStatus",
    "params": {},
    "messageId": 1
  }
20:50:46.839 detox[7053] i ws-client:APP_STATUS Failed to execute the current status query.
 BUNDLE  ./index.js 
20:51:38.143 detox[7027] i ws-server@55587 get
  data: {"messageId":1,"type":"currentStatusResult","params":{"status":{"app_status":"busy","busy_resources":[{"name":"looper","description":{"thread":"\"LooperIdlingResource-168-mqt_js\" (JS Thread)","execution_type":"JavaScript code"}},{"name":"looper","description":{"thread":"\"LooperIdlingResource-169-mqt_native_modules\" (Native Modules Thread)","execution_type":"native module calls"}}]}}}
20:51:38.143 detox[7027] i ws-server@34886 send
  data: {
    "messageId": 1,
    "type": "currentStatusResult",
    "params": {
      "status": {
        "app_status": "busy",
        "busy_resources": [
          {
            "name": "looper",
            "description": {
              "thread": "\"LooperIdlingResource-168-mqt_js\" (JS Thread)",
              "execution_type": "JavaScript code"
            }
          },
          {
            "name": "looper",
            "description": {
              "thread": "\"LooperIdlingResource-169-mqt_native_modules\" (Native Modules Thread)",
              "execution_type": "native module calls"
            }
          }
        ]
      }
    }
  }

Could a moderator please reopen this issue?

owens-ben commented 10 months ago

@noomorph thanks!

noomorph commented 10 months ago

Thank you for your understanding. Due to ongoing wars in our countries, our current bandwidth is limited. Typically, investigations like yours require several dedicated days, and the timeframe can extend if complex issues arise. My tasks are scheduled based on the priorities set by my company, so I can't promise I can look at it in the near future.

Overall, I understand the frustrations with issues like this. We're all looking forward to a resolution, but until we or someone else has time to get this done, such investigations will be held manually.

So, were I to have more resources, I'd go all in on obtaining that profiler recording, be it through Flipper or some native Android profiling method. It seems to be the most direct approach to addressing this concern. 🤷‍♂️ Get to know which function is running in your flamechart, and you know the culprit.

owens-ben commented 10 months ago

@noomorph understandable and I hope you and your colleagues are safe.

I have tried the Android profiler method running my local dev env, however the issue only reproduces in CI on Linux machines. Our team only uses macos machines so we are limited in our ability to reproduce and debug it.

I am open to creative solutions on how to debug this. I've considered spinning up a separate Ubuntu machine in AWS just to see if there are any fundamental issues with running our app on the AMD architecture.

Any and all ideas welcome :)

noomorph commented 10 months ago

@owens-ben if you are really open to any suggestions, maybe you could try to spin up flipper-server - first locally, then on CI?

https://www.npmjs.com/package/flipper-server

I hate to admit that this seems to be a rarely used experimental package, but if I get their idea right, it can serve a full-fledged Flipper UI via a browser. If this works, and it has no easy way to start recording via http request, maybe you could click on some buttons via puppeter (sounds bananas but might be viable).

Could you check that please?

owens-ben commented 10 months ago

One of my more senior teammates was able to help with this and get it running on a concept level. We will be compiling our findings. If there are any suggestions for anyone that runs into this problem we will share them here.

noomorph commented 10 months ago

@owens-ben, if your teammates eventually will be okay with releasing the source code of that "concept level", we'd highly appreciate this input. 🙏 I plan to work very seriously around the artifacts subsystem in Detox in Q4'23-Q1'24, and any viable POC can accelerate the appearance of generic Flipper artifact recording in Detox.

stale[bot] commented 8 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.

Thank you for your contributions!

For more information on bots in this repository, read this discussion.

cleberada commented 2 months ago

@noomorph I hope you are well. Do you have any news about this fix?