From 7b49fb1ad2236329a2d33a12dfaf742355268c0c Mon Sep 17 00:00:00 2001 From: Dawid Dominiak Date: Mon, 23 Mar 2026 15:55:52 +0100 Subject: [PATCH] fix(android): handle null versionName in isNewBinary() PackageInfo.versionName is @Nullable on Android. When it returns null (e.g. on sideloaded APKs or certain emulator builds where versionName is not set in the manifest), the .equals() call on line 442 throws a NullPointerException, crashing the app on startup before the WebView even loads. Null-coalesce to "" which matches the variable's initializer on line 425, so the comparison still works correctly. --- android/capacitor/src/main/java/com/getcapacitor/Bridge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/capacitor/src/main/java/com/getcapacitor/Bridge.java b/android/capacitor/src/main/java/com/getcapacitor/Bridge.java index de1bad88b..d4995fbbc 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/Bridge.java +++ b/android/capacitor/src/main/java/com/getcapacitor/Bridge.java @@ -434,7 +434,7 @@ private boolean isNewBinary() { PackageManager pm = getContext().getPackageManager(); PackageInfo pInfo = InternalUtils.getPackageInfo(pm, getContext().getPackageName()); versionCode = Integer.toString((int) PackageInfoCompat.getLongVersionCode(pInfo)); - versionName = pInfo.versionName; + versionName = pInfo.versionName != null ? pInfo.versionName : ""; } catch (Exception ex) { Logger.error("Unable to get package info", ex); }