Search code examples
androidmacosappium

Appium isn’t able to detect activities from my app


This is an issue I had using Appium from a Mac on Android.

Appium isn’t able to detect activities from my app. It was detecting these fine with another version of this app, and I’ve confirmed with the developer that I’m using the correct appname and activity name.

I opened my app in Appiumgui to check the activityname, and no activitynames are showing up. In the older version it does.

Here is my log when I tried to run with Appium Inspector (with the name of the app replaced).

[Appium] Welcome to Appium v1.8.1 [Appium] Appium REST http interface listener started on 0.0.0.0:4723 [HTTP] --> GET /wd/hub/sessions [HTTP] {} [MJSONWP] Calling AppiumDriver.getSessions() with args: [] [MJSONWP] Responding to client with driver.getSessions() result: [] [HTTP] <-- GET /wd/hub/sessions 200 7 ms - 40 [HTTP] [HTTP] --> POST /wd/hub/session [HTTP] {"desiredCapabilities":{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"Moto E (4) Plus","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true}} [MJSONWP] Calling AppiumDriver.createSession() with args: [{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"Moto E (4) Plus","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null] [BaseDriver] Event 'newSessionRequested' logged at 1535127815297 (12:23:35 GMT-0400 (EDT)) [Appium] Creating new AndroidUiautomator2Driver (v1.12.0) session [Appium] Capabilities: [Appium] appActivity: com.appname.appname.ActivityName [Appium] appPackage: com.appname.appname [Appium] automationName: UiAutomator2 [Appium] deviceName: Moto E (4) Plus [Appium] noReset: true [Appium] platformName: Android [Appium] platformVersion: 7.1.1 [Appium] newCommandTimeout: 0 [Appium] connectHardwareKeyboard: true [BaseDriver] Creating session with MJSONWP desired capabilities: {"appActivity":"com.powerle... [BaseDriver] The following capabilities were provided, but are not recognized by appium: connectHardwareKeyboard. [BaseDriver] Session created with session id: 0447ba48-fa3f-4c2d-b4cb-c17e2aaa2219 [AndroidDriver] Getting Java version [AndroidDriver] Java version is: 10.0.1 [ADB] Checking whether adb is present [ADB] Found 1 'build-tools' folders under '/Users/user/Library/Android/sdk' (newest first): [ADB] /Users/user/Library/Android/sdk/build-tools/27.0.3 [ADB] Using adb from /Users/user/Library/Android/sdk/platform-tools/adb [AndroidDriver] Retrieving device list [ADB] Trying to find a connected android device [ADB] Getting connected devices... [ADB] 1 device(s) connected [AndroidDriver] Looking for a device with Android '7.1.1' [ADB] Setting device id to ZY22495WLC [ADB] Getting device platform version [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.release' [ADB] Current device property 'ro.build.version.release': 7.1.1 [AndroidDriver] Using device: ZY22495WLC [ADB] Setting device id to ZY22495WLC [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.sdk' [ADB] Current device property 'ro.build.version.sdk': 25 [ADB] Device API level: 25 [AndroidDriver] No app sent in, not parsing package/activity [ADB] Getting device platform version [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.release' [ADB] Current device property 'ro.build.version.release': 7.1.1 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell wm size' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell wm density' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.product.model' [ADB] Current device property 'ro.product.model': Moto E (4) Plus [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.product.manufacturer' [ADB] Current device property 'ro.product.manufacturer': motorola [ADB] Device API level: 25 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop io.appium.uiautomator2.server' [ADB] Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk [ADB] Using apksigner from /Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner [ADB] Starting '/Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner' with args 'verify,--print-certs,/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' [ADB] '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' is already signed. [ADB] Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk [ADB] Starting '/Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner' with args 'verify,--print-certs,/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' [ADB] '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' is already signed. [ADB] Getting install status for io.appium.uiautomator2.server [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.uiautomator2.server' [ADB] App is installed [ADB] Getting package info for 'io.appium.uiautomator2.server' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.uiautomator2.server' [ADB] Checking whether aapt is present [ADB] Using aapt from /Users/user/Library/Android/sdk/build-tools/27.0.3/aapt [ADB] The installed 'io.appium.uiautomator2.server' package does not require upgrade ('1.12.0' >= '1.12.0') [ADB] Getting install status for io.appium.uiautomator2.server.test [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.uiautomator2.server.test' [ADB] App is installed [ADB] Getting package info for 'io.appium.uiautomator2.server.test' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.uiautomator2.server.test' [ADB] Cannot read version codes of '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' and/or 'io.appium.uiautomator2.server.test' [ADB] Cannot read version names of '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' and/or 'io.appium.uiautomator2.server.test'. Assuming correct app version is already installed [UiAutomator2] Waiting up to 20000ms for instrumentation 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' to be available [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list instrumentation' [UiAutomator2] Instrumentation 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' available [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC wait-for-device' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell echo ping' [AndroidDriver] Pushing settings apk to device... [ADB] Getting install status for io.appium.settings [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.settings' [ADB] App is installed [ADB] Getting package info for 'io.appium.settings' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.settings' [ADB] The installed 'io.appium.settings' package does not require upgrade ('2.3.0' >= '2.3.0') [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell ps' [AndroidDriver] io.appium.settings is already running. There is no need to reset its permissions. [ADB] Device API level: 25 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell appops set io.appium.settings android:mock_location allow' [AndroidDriver] setDeviceLanguageCountry requires language or country. [AndroidDriver] Got language: 'undefined' and country: 'undefined' [Logcat] Starting logcat capture [AndroidDriver] Pushing unlock helper app to device... [ADB] Getting install status for io.appium.unlock [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.unlock' [ADB] App is installed [ADB] Getting package info for 'io.appium.unlock' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.unlock' [ADB] The installed 'io.appium.unlock' package does not require upgrade ('2.0.0' >= '2.0.0') [UiAutomator2] Forwarding UiAutomator2 Server port 6790 to 8200 [ADB] Forwarding system: 8200 to device: 6790 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC forward tcp:8200 tcp:6790' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell rm -rf /data/local/tmp/strings.json' [UiAutomator2] No app capability. Assuming it is already on the device [ADB] Checking app cert for undefined [ADB] 'undefined' doesn't exist [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop io.appium.uiautomator2.server' [UiAutomator2] Starting uiautomator2 server 1.12.0 [UiAutomator2] Using UIAutomator2 server from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' and test from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' [UiAutomator2] Running command: 'adb -s ZY22495WLC shell am instrument -w io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' [UiAutomator2] Waiting up to 20000ms for UiAutomator2 to be online... [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8200/wd/hub/status] with no body [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8200/wd/hub/status] with no body [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8200/wd/hub/status] with no body [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8200/wd/hub/status] with no body [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8200/wd/hub/status] with no body [JSONWP Proxy] Got response with status 200: "{\"sessionId\":\"SESSIONID\",\"status\":0,\"value\":\"Status Invoked\"}" [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8200/wd/hub/session] with body: {"desiredCapabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"Moto E (4) Plus","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true},"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"ZY22495WLC","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true,"deviceUDID":"ZY22495WLC","deviceScreenSize":"720x1280","deviceScreenDensity":320,"deviceModel":"Moto E (4) Plus","deviceManufacturer":"motorola","deviceApiLevel":25}} [JSONWP Proxy] Got response with status 200: {"sessionId":"1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c","status":0,"value":"Created Session"} [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys window' [AndroidDriver] Screen already unlocked, doing nothing [UiAutomator2] UiAutomator2 did not start the activity we were waiting for, 'com.appname.appname/com.appname.appname.ActivityName'. Starting it ourselves [ADB] Device API level: 25 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am start -W -n com.appname.appname/com.appname.appname.ActivityName -S' [ADB] We tried to start an activity that doesn't exist, retrying with '.com.appname.appname.ActivityName' activity name [ADB] Device API level: 25 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am start -W -n com.appname.appname/.com.appname.appname.ActivityName -S' [UiAutomator2] Deleting UiAutomator2 session [UiAutomator2] Deleting UiAutomator2 server session [JSONWP Proxy] Proxying [DELETE /] to [DELETE http://localhost:8200/wd/hub/session/1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c] with no body [JSONWP Proxy] Got response with status 200: "{\"sessionId\":\"1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c\",\"status\":0,\"value\":\"Session deleted\"}" [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop com.appname.appname' [UiAutomator2] [UIAutomator2] io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:. [UiAutomator2] [UIAutomator2] Time: 5.017 [UiAutomator2] [UIAutomator2] OK (1 test) [Logcat] Stopping logcat capture [ADB] Removing forwarded port socket connection: 8200 [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC forward --remove tcp:8200' [BaseDriver] Event 'newSessionStarted' logged at 1535127834971 (12:23:54 GMT-0400 (EDT)) [MJSONWP] Encountered internal error running command: Error: Cannot start the 'com.appname.appname' application. Original error: Cannot start the 'com.appname.appname' application. Original error: Activity name '.com.appname.appname.ActivityName' used to start the app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity [MJSONWP] at ADB.callee$0$0$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/lib/tools/apk-utils.js:125:11) [MJSONWP] at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40) [MJSONWP] at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22) [MJSONWP] at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21) [MJSONWP] at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37) [MJSONWP] at [HTTP] <-- POST /wd/hub/session 500 19689 ms - 437 [HTTP] [HTTP] --> GET /wd/hub/session/50f426de-f038-418a-98cf-617e44eec8af/source [HTTP] {} [HTTP] <-- GET /wd/hub/session/50f426de-f038-418a-98cf-617e44eec8af/source 404 2 ms - 131 [HTTP]


Solution

  • It turns out we had multiple versions of the app with different app package names, and there was miscommunication between the developer and I about this. Once I used the correct name for the version I needed, everything went smoothly.