Simple Appium script runs with UiAutomator1 but fails with UiAutomator2

I have Java 16 and Appium server 1.21.0.

I ran the following very simple script to open Calculator.apk from Eclipse 2021-06.

DesiredCapabilities cap = new DesiredCapabilities();        
cap.setCapability("deviceName", "Galaxy S8");
cap.setCapability("automationName", "UiAutomator1");
cap.setCapability("udid", "9889ba4159454b524d"); 
cap.setCapability("platformName", "Android");
cap.setCapability("platformVersion", "9");
cap.setCapability("appPackage", "com.sec.android.app.popupcalculator");
cap.setCapability("appActivity", "com.sec.android.app.popupcalculator.Calculator");

URL url = new URL("http://127.0.0.1:4723/wd/hub");
AppiumDriver<MobileElement> driver = new AppiumDriver<MobileElement>(url, cap);

It works fine. But as soon I replace UiAutomator1 with UiAutomator2, I get the following errors:

[UiAutomator2] Server package at 'C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-v4.21.1.apk' is not writeable. Will copy it into the temporary location at 'C:\Users\vladi\AppData\Local\Temp\2021722-16412-1qp8256.nl2vj' as a workaround. Consider making this file writeable manually in order to improve the performance of session startup. <br/>
[UiAutomator2] Server package at 'C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-debug-androidTest.apk' is not writeable. Will copy it into the temporary location at 'C:\Users\vladi\AppData\Local\Temp\2021722-16412-1qp8256.nl2vj' as a workaround. Consider making this file writeable manually in order to improve the performance of session startup. <br/>
[ADB] Getting install status for io.appium.uiautomator2.server <br/>
[ADB] Running 'C:\android-cmd-tools\platform-tools\adb.exe -P 5037 -s 9889ba4159454b524d shell dumpsys package io.appium.uiautomator2.server' <br/>
[ADB] 'io.appium.uiautomator2.server' is not installed <br/>
[ADB] App 'C:\Users\vladi\AppData\Local\Temp\2021722-16412-1qp8256.nl2vj\appium-uiautomator2-server-v4.21.1.apk' is not installed <br/>
[UiAutomator2] io.appium.uiautomator2.server installation state: notInstalled <br/>
[ADB] Checking app cert for C:\Users\vladi\AppData\Local\Temp\2021722-16412-1qp8256.nl2vj\appium-uiautomator2-server-v4.21.1.apk <br/>
[UiAutomator2] Deleting UiAutomator2 session <br/>
[UiAutomator2] Deleting UiAutomator2 server session

and later

[BaseDriver] Event 'newSessionStarted' logged at 1629697568057 (22:46:08 GMT-0700 (Pacific Daylight Time))<br/>
[W3C] Encountered internal error running command: Error: Cannot verify the signature of 'C:\Users\vladi\AppData\Local\Temp\2021722-16412-1qp8256.nl2vj\appium-uiautomator2-server-v4.21.1.apk'. Original error: Could not find 'apksigner.jar' in ["C:\\android-cmd-tools\\platform-tools\\apksigner.jar","C:\\android-cmd-tools\\emulator\\apksigner.jar","C:\\android-cmd-tools\\cmdline-tools\\latest\\bin\\apksigner.jar","C:\\android-cmd-tools\\tools\\apksigner.jar","C:\\android-cmd-tools\\tools\\bin\\apksigner.jar","C:\\android-cmd-tools\\apksigner.jar"]. Do you have Android Build Tools installed at 'C:\android-cmd-tools'?<br/>
[W3C]     at ADB.checkApkCert (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-adb\lib\tools\apk-signing.js:270:11)