App invocation issue

Here is the error message below.
[MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“capabilities”,“sessionId”,“id”]} and you sent [“desiredCapabilities”,“requiredCapabilities”,“capabilities”,“alwaysMatch”,“firstMatch”]

my eclipse code.

import static org.junit.Assert.*;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;

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

public class DesiredCapab {

@Test
public void test() throws MalformedURLException {
	File appDir = new File("src");
	File app = new File(appDir,"bookMyShow-ucb.apk");
	
	DesiredCapabilities cap = new DesiredCapabilities();
	cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
	cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
	cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
	
	AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),cap);
	
}

}

What version of Appium server are you running? And what version of the java client?

Thanks Brian for ur help. i am using Desktop version Appium v1.6.4

Make sure you are using the latest Appium java-client, later then 5.0.0-BETA6. Versions earlier resulted in a BadParametersError for me.

sorry i dont get it. what should i do now exactly. what is appium java-client?

It’s the library you include from your java code…

could you write me the syntax to include appium/java-client. should i include it through java build path in eclipse?

You are already importing it into your code. FRom your first sample you pasted above…

What version is it? Are you using maven or gradle? In my build.gradle I specify…

dependencies {
    compile 'io.appium:java-client:5.0.0-BETA7'
}

Thanks brian. The error says in appium server…
[MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“capabilities”,“sessionId”,“id”]} and you sent [“desiredCapabilities”,“requiredCapabilities”,“capabilities”,“alwaysMatch”,“firstMatch”]

My eclipse code is.

import static org.junit.Assert.*;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;

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

public class DesiredCapab {

@Test
public void test() throws MalformedURLException {
	File appDir = new File("src");
	File app = new File(appDir,"bookMyShow-ucb.apk");
	
	DesiredCapabilities cap = new DesiredCapabilities();
	cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
	cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
	cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100");
	cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
	
	AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),cap);
	
}

}

This one solved my problem.
FYI, it worked when we add selenium standalone server 2.5. Not 3.3.1. I would imagine a fix is brewing for 3.3.1 or later. Thank you for trying to help.