After installing vs2022 (17.1.0 preview 1.1) alongside vs2019 (16.11.7), I am unable to deploy my apps to the Android emulator on vs2019. On vs2019 I am met with, Error: SB6006: "java.exe" exited with code 2" every time it tries to deploy to the emulator. On the flip-side, it does deploy with vs2022.
Note, this issue occurs with all of my apps, even the default Xamarin.Forms template apps. And, I keep my dev laptop environments minimal - Visual Studio, .NET SDK, Notepad++.
Could this be a PATH Environment Variable being out of order with the recent install of VS2022?
Reproduce
Below are the specs of a project freshly created with a new emulator generated that fails to deploy on vs2019.
- Open, Visual Studio 2019 (Enterprise)
- Create a new Xamarin.Forms project (Android only)
- Build
- Debug (play button)
Environment
- Xamarin.Forms: v5.0.0.2012
- Emulator - Pixel2 API30 (default)
- Proj - Minimum Android Version: Android 5.0 (API Level 21 - Lollipop)
- Proj - Target Android Version: Android 11.0 (API Level 30 - R)
Build
...
1>Starting deployment to pixel2_-_api_30 ...
1>Deploying to pixel2_-_api_30 ...
Build started.
Project "Base2019.Android.csproj" (Install target(s)):
Found Java SDK version 1.8.0.
Found Java SDK version 1.8.0.
Dex Fast Deployment Enabled: False
MonoAndroid Tools: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\
Android Platform API level: 30
TargetFrameworkVersion: v11.0
Android NDK:
Android SDK: C:\Program Files (x86)\Android\android-sdk\
Android SDK Build Tools: C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\
Java SDK: C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\
Application Java class: android.app.Application
Project "Base2019.csproj" (GetTargetFrameworks target(s)):
Done building project "Base2019.csproj".
Project "Base2019.csproj" (GetTargetPath target(s)):
Done building project "Base2019.csproj".
Project "Base2019.csproj" (GetNativeManifest target(s)):
Done building project "Base2019.csproj".
Skipping target "_ResolveLibraryProjectImports" because all output files are up-to-date with respect to the input files.
...
...
Skipping target "_CompileToDalvik" because all output files are up-to-date with respect to the input files.
Copying file from "C:\work\labs\zFailures\Base2019\Base2019\Base2019.Android\obj\Debug\110\android\bin\com.companyname.base2019.apk" to "C:\work\labs\zFailures\Base2019\Base2019\Base2019.Android\bin\Debug\com.companyname.base2019.apk".
Creating "obj\Debug\110\android_debug_keystore.flag" because "AlwaysCreate" was specified.
C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\zipalign.exe -p 4 "C:\work\labs\zFailures\Base2019\Base2019\Base2019.Android\obj\Debug\110\android\bin\com.companyname.base2019.apk" "bin\Debug\com.companyname.base2019-Signed.apk"
C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin\java.exe -jar "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\apksigner.jar" sign --ks "C:\Users\damians\AppData\Local\Xamarin\Mono for Android\debug.keystore" --ks-pass pass:android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 21 --max-sdk-version 30 C:\work\labs\zFailures\Base2019\Base2019\Base2019.Android\bin\Debug\com.companyname.base2019-Signed.apk
Failed to load signer "signer #1"
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:666)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:57)
at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:71)
at java.security.KeyStore.load(KeyStore.java:1445)
at com.android.apksigner.SignerParams.loadKeyStoreFromFile(SignerParams.java:353)
at com.android.apksigner.SignerParams.loadPrivateKeyAndCertsFromKeyStore(SignerParams.java:239)
at com.android.apksigner.SignerParams.loadPrivateKeyAndCerts(SignerParams.java:181)
at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:277)
at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:83)
MSB6006: "java.exe" exited with code 2.
Done building project "Base2019.Android.csproj" -- FAILED.
Build FAILED.
1>Deployment failed to pixel2_-_api_30. ==========
Deploy: 0 succeeded, 1 failed, 0 skipped ==========