diff --git a/CHANGELOG.md b/CHANGELOG.md index e43f41680f..597f341fd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## TBD + +### Bug fixes + +* Add null check when loading data from manifest + [#878](https://github.com/bugsnag/bugsnag-android/pull/878) + ## 5.0.0 (2020-04-21) __This version contains many breaking changes__. It is part of an effort to unify our notifier diff --git a/bugsnag-android-core/src/main/java/com/bugsnag/android/ManifestConfigLoader.kt b/bugsnag-android-core/src/main/java/com/bugsnag/android/ManifestConfigLoader.kt index 1d7db46c94..06b7a1a161 100644 --- a/bugsnag-android-core/src/main/java/com/bugsnag/android/ManifestConfigLoader.kt +++ b/bugsnag-android-core/src/main/java/com/bugsnag/android/ManifestConfigLoader.kt @@ -59,21 +59,23 @@ internal class ManifestConfigLoader { * @param data the manifest bundle */ @VisibleForTesting - internal fun load(data: Bundle, userSuppliedApiKey: String?): Configuration { + internal fun load(data: Bundle?, userSuppliedApiKey: String?): Configuration { // get the api key from the JVM call, or lookup in the manifest if null - val apiKey = (userSuppliedApiKey ?: data.getString(API_KEY)) + val apiKey = (userSuppliedApiKey ?: data?.getString(API_KEY)) ?: throw IllegalArgumentException("No Bugsnag API key set") val config = Configuration(apiKey) - loadDetectionConfig(config, data) - loadEndpointsConfig(config, data) - loadAppConfig(config, data) + if (data != null) { + loadDetectionConfig(config, data) + loadEndpointsConfig(config, data) + loadAppConfig(config, data) - // misc config - with(config) { - maxBreadcrumbs = data.getInt(MAX_BREADCRUMBS, maxBreadcrumbs) - launchCrashThresholdMs = - data.getInt(LAUNCH_CRASH_THRESHOLD_MS, launchCrashThresholdMs.toInt()).toLong() + // misc config + with(config) { + maxBreadcrumbs = data.getInt(MAX_BREADCRUMBS, maxBreadcrumbs) + launchCrashThresholdMs = + data.getInt(LAUNCH_CRASH_THRESHOLD_MS, launchCrashThresholdMs.toInt()).toLong() + } } return config }