android-branch-deep-linking-attribution
android-branch-deep-linking-attribution copied to clipboard
Crash Resources$NotFoundException on Android 12
Hello! We have crash on Android 12 (Samsung) on old Branch version 4.3.1:
Fatal Exception: android.content.res.Resources$NotFoundException
Resource ID #0x20c0025
android.content.res.ResourcesImpl.getValue (ResourcesImpl.java:240)
android.content.res.Resources.getInteger (Resources.java:1275)
org.chromium.ui.base.DeviceFormFactor.isTablet (DeviceFormFactor.java:8)
cs.a (cs.java:4)
org.chromium.content.browser.BrowserStartupControllerImpl.e (BrowserStartupControllerImpl.java:25)
org.chromium.content.browser.BrowserStartupControllerImpl.g (BrowserStartupControllerImpl.java:26)
https://bugs.chromium.org/p/chromium/issues/detail?id=1271617&q=org.chromium.ui.base.DeviceFormFactor.isTablet&can=2
This happenes because Branch calls:
android.webkit.WebSettings.getDefaultUserAgent (WebSettings.java:1365)
io.branch.referral.DeviceInfo.getDefaultBrowserAgent (DeviceInfo.java:311)
io.branch.referral.DeviceInfo.updateRequestWithV2Params (DeviceInfo.java:223)
io.branch.referral.ServerRequest.setPost (ServerRequest.java:192)
io.branch.referral.ServerRequestGetCPID.<init> (ServerRequestGetCPID.java:19)
io.branch.referral.Branch.getCrossPlatformIds (Branch.java:1833)
Will latest Branch v5.0.15 save us from this crash?
@akushnarev-soul In theory, yes. The current call to WebSettings.getDefaultUserAgent is wrapped in a try catch as shown:
// PRS : User agent is checked only from api-17
private String getDefaultBrowserAgent(Context context) {
String userAgent = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
try {
userAgent = WebSettings.getDefaultUserAgent(context);
} catch (Exception ignore) {
// A known Android issue. Webview packages are not accessible while any updates for chrome is in progress.
// https://bugs.chromium.org/p/chromium/issues/detail?id=506369
}
}
return userAgent;
}