Driver.hidekeyboard() issue

I am automation for android and application form is to register a user. Hence there are so many fields to enter data.

Appium version: 1.4.16.1 (latest for windows)

E.g:
public void setFirstName(String firstName1) {
waitForVisibleElement(By.xpath(firstNameId), 10);
firstName.sendKeys(firstName1);
driver.hideKeyboard();
};

public void setLastName(String LastName1) {
	//waitForVisibleElement(By.xpath(lastNameId), 10);
	lastName.sendKeys(LastName1);
	driver.hideKeyboard();
};

public void setPhone(String phone1) {
	//waitForVisibleElement(By.xpath(phoneId), 10);
	phone.sendKeys(phone1);
	driver.hideKeyboard();
};

public void setEmail(String email1) {
	if (email1.equals("unique")) {
		//waitForVisibleElement(By.xpath(emailId), 10);
		email.sendKeys(emailAddress);
		driver.hideKeyboard();
	}
};

The test is so flacky. Error: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (Original error: Soft keyboard not present, cannot hide keyboard) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 122 milliseconds

Can you please help?