Appium is not running an application that is already installed in my device

Hello,

I need help to run Appium on Android emulator using an android application (like calculator, settings, …). When I use an .apk it works fine, but for a com.android it doesn’t.

I’m not sure if this is an bug or lack of knowledge from my part (<- most possible) but since I didn’t find anything regarding this on internet I’m posting here.

If possible could you please provide me an step by step guide on how to fix it?

Please note detailed info bellow.
Thanks in advance! :slight_smile:

CONFIGS

Environments:

ANDROID_HOME: …\Android\android-sdk-windows
JAVA_HOME: …\Java\jdk1.8.0_92
PATH: …\Oracle\Java\javapath;%JAVA_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\platforms; …\nodejs\

java-client-3.4.1
AppiumForWindows_1_4_16_1
selenium-2.53.0

  • Windows SO:
    Windows 7 Enterprise 32-bit

  • APPIUM:


appiumgeneralsettings

MY CODE:


package teste.com.example;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;

public class CalculatorTest {
    
    AppiumDriver<WebElement> driver;
    
    //@SuppressWarnings("deprecation")
    @BeforeClass
    public void Setup() throws MalformedURLException{
        
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
        capabilities.setCapability("appPackage", "com.android.calculator2");
        capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
        capabilities.setCapability("avd", "emulator-5554");
        
        driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }
        
    @Test
    public void Add() {
        //clean display
        driver.findElementByAccessibilityId("delete").click();
        
        //execute add operation
        driver.findElementById("digit1").click();
        driver.findElementByAccessibilityId("plus").click();
        driver.findElementById("digit3").click();
        driver.findElementByAccessibilityId("equals").click();
        
        //verify result
        String result = driver.findElementByClassName("android.widget.EditText").getText();
        result.equals("4");
    }

}

APPIUM LOG


> Launching Appium server with command: C:\Program Files\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --device-name "emuator-5554" --log-no-color
> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)
> info: Appium REST http interface listener started on 127.0.0.1:4723
> info: [debug] Non-default server args: {"address":"127.0.0.1","logNoColors":true,"deviceName":"emuator-5554","platformName":"Android","platformVersion":"23","automationName":"Appium"}
> info: Console LogLevel: debug
> info: --> POST /wd/hub/session {"desiredCapabilities":{"appPackage":"com.android.calculator2","appActivity":"com.android.calculator2.Calculator","platformName":"Android","deviceName":"emulator-5554","avd":"emulator-5554"}}
> info: Client User-Agent string: Apache-HttpClient/4.5.1 (Java/1.8.0_92)
> info: [debug] Didn't get app but did get Android package, will attempt to launch it on the device
> info: [debug] Creating new appium session 4971b8df-4993-4ba2-8634-a6425e104ab5
> info: Starting android appium
> info: [debug] Getting Java version
> info: Java version is: 1.8.0_92
> info: [debug] Checking whether adb is present
> info: [debug] Using adb from C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe
> warn: No app capability, can't parse package/activity
> info: [debug] Using fast reset? true
> info: [debug] Preparing device for session
> info: [debug] Not checking whether app is present since we are assuming it's already on the device
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> info: [debug] Launching Emulator with AVD emulator-5554, launchTimeout 120000ms and readyTimeout 120000ms
> info: [debug] Checking whether emulator is present
> info: [debug] Using emulator from C:\Program Files\Android\android-sdk-windows\tools\emulator.exe
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> error: Unable to start Emulator: PANIC: HOME is defined but could not find emulator-5554.ini file in $HOME\.android\avd
> (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME\.android\avd and $HOME\.android\avd)
> 

Did you make sure that the device is named “emulator-5554”, I see in screenshot and log --device-name "emuator-5554".

1 Like

Hello!
I fix this erro but problem remains. :frowning:

@renatapab: Could you please post the updated stacktrace.

Because, it is working fine for me.

Hello @email2vimalraj
Sorry for delay, I went off this days … :frowning:

Here they are:

**

Console LOG

**

[TestNG] Running:
  C:\Users\51885\AppData\Local\Temp\testng-eclipse--412502695\testng-customsuite.xml

FAILED CONFIGURATION: @BeforeClass Setup
org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'SPL0316PE01ZBE9', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_92'
Driver info: driver.version: AndroidDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
    at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:43)
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
    at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
    at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:39)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:69)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:78)
    at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:67)
    at teste.com.example.CalculatorTest.Setup(CalculatorTest.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:170)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104)
    at org.testng.TestRunner.privateRun(TestRunner.java:774)
    at org.testng.TestRunner.run(TestRunner.java:624)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
    at org.testng.SuiteRunner.run(SuiteRunner.java:261)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
    at org.testng.TestNG.run(TestNG.java:1048)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)
Caused by: org.openqa.selenium.WebDriverException: java.net.SocketException: Connection reset
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'SPL0316PE01ZBE9', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_92'
Driver info: driver.version: AndroidDriver
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:76)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
    ... 35 more
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:144)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:90)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:64)
    ... 36 more

## Appium LOG

`> Checking if an update is available
> Update not available
> Launching Appium server with command: C:\Program Files\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --device-name "emulator-5554" --log-no-color
> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)
> info: Appium REST http interface listener started on 127.0.0.1:4723
> info: [debug] Non-default server args: {"address":"127.0.0.1","logNoColors":true,"deviceName":"emulator-5554","platformName":"Android","platformVersion":"23","automationName":"Appium"}
> info: Console LogLevel: debug
> info: --> POST /wd/hub/session {"desiredCapabilities":{"appPackage":"com.android.calculator2","appActivity":"com.android.calculator2.Calculator","platformName":"Android","deviceName":"emulator-5554","avd":"emulator-5554"}}
> info: Client User-Agent string: Apache-HttpClient/4.5.1 (Java/1.8.0_92)
> info: [debug] Didn't get app but did get Android package, will attempt to launch it on the device
> info: [debug] Creating new appium session 36a82048-7d7e-48df-a3e4-18a003bf51dd
> info: Starting android appium
> info: [debug] Getting Java version
> info: Java version is: 1.8.0_92
> info: [debug] Checking whether adb is present
> info: [debug] Using adb from C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe
> warn: No app capability, can't parse package/activity
> info: [debug] Using fast reset? true
> info: [debug] Preparing device for session
> info: [debug] Not checking whether app is present since we are assuming it's already on the device
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> info: [debug] Launching Emulator with AVD emulator-5554, launchTimeout 120000ms and readyTimeout 120000ms
> info: [debug] Checking whether emulator is present
> info: [debug] Using emulator from C:\Program Files\Android\android-sdk-windows\tools\emulator.exe
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> error: Unable to start Emulator: PANIC: HOME is defined but could not find emulator-5554.ini file in $HOME\.android\avd
> (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME\.android\avd and $HOME\.android\avd)
> 
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7`

@renatapab: Seems appium is unable to get hold of the emulator. Is your emulator running? If not could you please start manually and try once.

Hey @email2vimalraj,

Yes, my emulator was running. Appium is working fine when I use local .apk, this problem happens just when I try to use a standard Android application like the Calculator.

Interesting, let me try on my emulator before I comment anything.

Hey @email2vimalraj, any news? :slight_smile:

Hi

I also met the same problem, do you solve it now?

hey @tripped,

Problem still persists for emulator :frowning:

Hey sorry buddy, I was busy with my project work. I was not active for couple of weeks. I’ll try this today and get back to you.

HI All,

I am facing the same issue - Getting connection reset error. I know I am committing some very basic mistake. I have posted by question along with code & logs at stackoverflow. Here is the link -

http://stackoverflow.com/questions/41741420/unreachablebrowserexception-in-appium-while-trying-to-initiate-androiddriver

I am starting Appium server by code and can see node.exe running in task manager but when AndroidDriver initialization occurs i get this exception.
Please help.