Getting following error "java.lang.NullPointerException" while running script by using appium 1.13 and java ,TestNG

Hello Friends , I need help. I am running following script using appium 1.4.13 and it is working fine but while using latest appium 1.13 , it giivng me “java.lang.NullPointerException” error. please provide how to overcome it.

package com.hannalab;

import io.appium.java_client.android.AndroidDriver;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.util.Date;
public class HannaLabAppLaunch {

AndroidDriver driver=null;

@BeforeTest(enabled = true)
public void TestExecutionDate()
{

  		  Date dNow = new Date( );
  	      SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
  	      System.out.println("Test Cases for Tablets");
  	      System.out.println("Current Date: " + ft.format(dNow));

}

//@BeforeTest
@Test(priority = -1)
public void setUp() throws MalformedURLException
{
try{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“deviceName”, “ZX1B32FFXF”);
capabilities.setCapability(“browserName”, “Android”);
capabilities.setCapability(“platformVersion”, “4.4.2”);
capabilities.setCapability(“platformName”, “Android”);
capabilities.setCapability(“rotatable”, true);
capabilities.setCapability(“appPackage”, “com.hannainst.hannalab”);
capabilities.setCapability(“appActivity”,“com.hannainst.hannalab.ManagerActivity”);
driver = new AndroidDriver(new URL(“http://0.0.0.0:4723/wd/hub”), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 300);
wait.until(ExpectedConditions.elementToBeClickable(By.className(“android.widget.RelativeLayout”)));
System.out.println(“TC0 :-App Launched Successfully”);
} catch(Throwable e)
{
System.out.println(“TC0:-Test Case Failed”);

  		}

}

@AfterTest
public void End() throws IOException
{

  //driver.removeApp("com.hannainst.hannalab");
  driver.resetApp();
  driver.quit();  
  //driver.close();

}
}

Following error getting
[RemoteTestNG] detected TestNG version 6.14.3
Test Cases for Tablets
Current Date: Sun 2019.05.26 at 11:39:17 PM IST
TC0:-Test Case Failed
FAILED CONFIGURATION: @AfterTest End
java.lang.NullPointerException
at com.hannalab.HannaLabAppLaunch.End(HannaLabAppLaunch.java:62)
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:124)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.TestRunner.afterRun(TestRunner.java:725)
at org.testng.TestRunner.run(TestRunner.java:509)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

PASSED: setUp

===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
Configuration Failures: 1, Skips: 0

===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
Configuration Failures: 1, Skips: 0

Following is appium log
[Appium] Welcome to Appium v1.13.0
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] → POST /wd/hub/session
[HTTP] {“desiredCapabilities”:{“appPackage”:“com.hannainst.hannalab”,“appActivity”:“com.hannainst.hannalab.ManagerActivity”,“rotatable”:true,“platformVersion”:“4.4.2”,“browserName”:“Android”,“platformName”:“Android”,“deviceName”:“ZX1B32FFXF”}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{“appPackage”:“com.hannainst.hannalab”,“appActivity”:“com.hannainst.hannalab.ManagerActivity”,“rotatable”:true,“platformVersion”:“4.4.2”,“browserName”:“Android”,“platformName”:“Android”,“deviceName”:“ZX1B32FFXF”},null,null]
[BaseDriver] Event ‘newSessionRequested’ logged at 1558894186620 (23:39:46 GMT+0530 (India Standard Time))
[Appium]
[Appium] ======================================================================
[Appium] DEPRECATION WARNING:
[Appium]
[Appium] The ‘automationName’ capability was not provided in the desired
[Appium] capabilities for this Android session
[Appium]
[Appium] Setting ‘automationName=UiAutomator1’ by default and using the
[Appium] UiAutomator1 Driver
[Appium]
[Appium] The next minor version of Appium (1.14.x) will set
[Appium] ‘automationName=UiAutomator2’ by default and use the UiAutomator2
[Appium] Driver
[Appium]
[Appium] The next major version of Appium (2.x) will require the
[Appium] ‘automationName’ capability to be set for all sessions on all
[Appium] platforms
[Appium]
[Appium] If you are happy with ‘UiAutomator1’ and do not wish to upgrade
[Appium] Android drivers, please add ‘automationName=UiAutomator1’ to your
[Appium] desired capabilities
[Appium]
[Appium] For more information about drivers, please visit
[Appium] http://appium.io/docs/en/about-appium/intro/ and explore the
[Appium] ‘Drivers’ menu
[Appium]
[Appium] ======================================================================
[Appium]
[Appium] Setting automation to ‘UiAutomator1’.
[Appium] Appium v1.13.0 creating new AndroidDriver (v4.15.1) session
[Appium] Capabilities:
[Appium] appPackage: com.hannainst.hannalab
[Appium] appActivity: com.hannainst.hannalab.ManagerActivity
[Appium] rotatable: true
[Appium] platformVersion: 4.4.2
[Appium] browserName: Android
[Appium] platformName: Android
[Appium] deviceName: ZX1B32FFXF
[BaseDriver] Creating session with MJSONWP desired capabilities: {“appPackage”:"com.hannains…
[BaseDriver] The following capabilities were provided, but are not recognized by appium: rotatable.
[AndroidDriver] Error: The desired should not include both of an ‘appPackage’ and a ‘browserName’
[AndroidDriver] at Object.wrappedLogger.errorAndThrow (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-support\lib\logging.js:78:13)
[AndroidDriver] at Object.errorAndThrow [as validateDesiredCaps] (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\android-helpers.js:788:14)
[AndroidDriver] at AndroidDriver.validateDesiredCaps (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\driver.js:500:20)
[AndroidDriver] at AndroidDriver.validateDesiredCaps [as createSession] (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\commands\session.js:46:8)
[AndroidDriver] at AndroidDriver.createSession (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\driver.js:67:43)
[AndroidDriver] at AppiumDriver.createSession (C:\Program Files\Appium\resources\app\node_modules\appium\lib\appium.js:342:43)
[AndroidDriver] at process._tickCallback (internal/process/next_tick.js:68:7)
[AndroidDriver] Shutting down Android driver
[AndroidDriver] Called deleteSession but bootstrap wasn’t active
[BaseDriver] Event ‘newSessionStarted’ logged at 1558894186634 (23:39:46 GMT+0530 (India Standard Time))
[MJSONWP] Encountered internal error running command: Error: The desired should not include both of an ‘appPackage’ and a ‘browserName’
[MJSONWP] at Object.wrappedLogger.errorAndThrow (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-support\lib\logging.js:78:13)
[MJSONWP] at Object.errorAndThrow [as validateDesiredCaps] (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\android-helpers.js:788:14)
[MJSONWP] at AndroidDriver.validateDesiredCaps (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\driver.js:500:20)
[MJSONWP] at AndroidDriver.validateDesiredCaps [as createSession] (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\commands\session.js:46:8)
[MJSONWP] at AndroidDriver.createSession (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\driver.js:67:43)
[MJSONWP] at AppiumDriver.createSession (C:\Program Files\Appium\resources\app\node_modules\appium\lib\appium.js:342:43)
[MJSONWP] at process._tickCallback (internal/process/next_tick.js:68:7)
[HTTP] ← POST /wd/hub/session 500 18 ms - 211
[HTTP]

  1. You used try-catch --> although the driver is null, your code still run from setup() --> end().
    Cause the driver is null --> you got a message: “java.lang.NullPointerException” when code execute driver.resetApp().
    –>> You can check driver before use it: if (driver != null) {driver.resetApp();}
    –>> Or put your setup code outside try-catch. >> when setup not complete >> it will stop.
  2. method setUp() should be use @BeforeTest, not @Test.

Sorry for my English.
So, you can refer my code Sample: https://github.com/hominhtuong/appium/tree/master/AppiumSample