Running test on real device without app capability - ERROR: no dump file specified

Hi! I am trying to run a sample test for a native Calculator app on a real Android 4.1.2 device. I’m using Appium(run as admin) on Windows, Selendroid and Eclipse. My sample code is

@BeforeClass
public void setUp() throws MalformedURLException{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("browserName", "");
capabilities.setCapability("automationName", "Selendroid");
capabilities.setCapability("platformVersion", "4.1.2");
capabilities.setCapability("deviceName","0123456789ABCDEF");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); 
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

From what i have found on different forums and resources, it is possible to refer to the necessary application only by its package name and the launcher activity(without providing the .apk). However, for some reason Appium fails when not provided with the dump. The log of the failure is

> Checking if an update is available
> Update not available
> Starting Node Server
> info: Welcome to Appium v1.3.7 (REV 72fbfaa116d3d9f6a862600ee99cf02f6d0e2182)
> 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,"platformName":"Android","platformVersion":"16","automationName":"Selendroid"}
> info: Console LogLevel: debug
> info: --> POST /wd/hub/session {"desiredCapabilities":{"appPackage":"com.android.calculator2","appActivity":"com.android.calculator2.Calculator","platformVersion":"4.1.2","automationName":"Selendroid","platformName":"Android","deviceName":"0123456789ABCDEF"}}
> info: Client User-Agent string: Apache-HttpClient/4.3.6 (java 1.5)
> 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 9942d26b-d1c1-43c8-9c6b-a9c4382d5ac9
> info: [debug] Starting selendroid server
> info: [debug] Getting Java version
> info: Java version is: 1.8.0_45
> info: [debug] Checking whether adb is present
> info: [debug] Using adb from D:\Android\android-sdk\platform-tools\adb.exe
> info: [debug] Checking whether selendroid is built yet
> info: [debug] Selendroid server exists!
> 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: Retrieving device
> info: [debug] Trying to find a connected android device
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: D:\Android\android-sdk\platform-tools\adb.exe devices
> info: [debug] 1 device(s) connected
> info: Found device 0123456789ABCDEF
> info: [debug] Setting device id to 0123456789ABCDEF
> info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
> info: [debug] executing cmd: D:\Android\android-sdk\platform-tools\adb.exe -s 0123456789ABCDEF wait-for-device
> info: [debug] executing cmd: D:\Android\android-sdk\platform-tools\adb.exe -s 0123456789ABCDEF shell "echo 'ready'"
> info: [debug] Starting logcat capture
> info: [debug] Checking whether aapt is present
> info: [debug] Using aapt from D:\Android\android-sdk\build-tools\22.0.1\aapt.exe
> info: [debug] Checking if has internet permission from manifest.
> info: [debug] executing cmd: D:\Android\android-sdk\build-tools\22.0.1\aapt.exe dump badging 
> warn: ERROR: no dump file specified
> 
> error: Failed to start an Appium session, err was: Error: hasInternetPermissionFromManifest failed. Error: Command failed: ERROR: no dump file specified
> 
> info: [debug] Cleaning up appium session
> info: [debug] Error: hasInternetPermissionFromManifest failed. Error: Command failed: ERROR: no dump file specified
> 
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:1661:19
>     at ChildProcess.exithandler (child_process.js:641:7)
>     at ChildProcess.EventEmitter.emit (events.js:98:17)
>     at maybeClose (child_process.js:743:16)
>     at Process.ChildProcess._handle.onexit (child_process.js:810:5)
> info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: hasInternetPermissionFromManifest failed. Error: Command failed: ERROR: no dump file specified\r\n)","origValue":"hasInternetPermissionFromManifest failed. Error: Command failed: ERROR: no dump file specified\r\n"},"sessionId":null}
> info: <-- POST /wd/hub/session 500 635.247 ms - 318

Please note that appium says: > info: [debug] Didn’t get app but did get Android package, will attempt to launch it on the device so it recognized that there is no dump file and still fails when this file is not found. How can this be?
Please help me with identifying the problem and fixing it.

+1 I am running into the same issue. Anyone have insight?

I partly figured out the issue. In Selendroid mode you have to make sure your app has Internet permission. To do this appium wants to parse manifest. And in order to be able to parse it it requires the apk file. furthermore, simple calc app on my Android 4.1.2 did not have the Internet permission.
So i ended up experimenting on a newer Android, so not to bother with Selendroid mode…

Thanks for the reply. In my case, internet IS enabled in the manifest:

a

Hi I am trying to even just fire up the calculator app on a real android device which has a platform version of 4.1.2 I have no choice to upgrade the android version so I have been using automationName", "Selendroid but still get this error (the same on the appium gui) I am using windows 10 running appium

The capabilities I have set as follows;-
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability(“automationName”, “Selendroid”);
capabilities.SetCapability(“appium-version”, “1.1.0”);
capabilities.SetCapability(“platformName”, “Android”);
capabilities.SetCapability(“deviceName”, “TC55-04”);
capabilities.SetCapability(“platformVersion”, “4.1.2”);
capabilities.SetCapability(CapabilityType.BrowserName, “”);
capabilities.SetCapability(“device”, “Android”);
capabilities.SetCapability(“appPackage”, “com.android.calculator2”);
capabilities.SetCapability(“appActivity”, “com.android.calculator2.Calculator”);
Uri serverAddress = new Uri(“http://127.0.0.1:4723/wd/hub”);
_driver = new AndroidDriver(serverAddress, capabilities);
_driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(180));

error is
System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=A new session could not be created. (Original error: hasInternetPermissionFromManifest failed. Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "“C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1\aapt.exe” dump badging "
ERROR: no dump file specified
) (33)
Source=WebDriver
StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters) at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) at OpenQA.Selenium.Appium.AppiumDriver1…ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Appium.Android.AndroidDriver`1…ctor(Uri remoteAddress, DesiredCapabilities desiredCapabilities)
at AppiumSample.UnitTest1.initialize() in C:\Users\andre\documents\visual studio 2015\Projects\test2\test2\UnitTest2.cs:line 60
InnerException:

Appium version is 1.4.16.1 and android sdk version is 25.0.1

Selendroid to re-signature, plus desired_caps [‘app’], or own sign debug key