diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index ebddc91dfdfb219e4636855808194d778201e7cf..7c74dd6370bf3e0ba5608f5e6c0ee651484d36f7 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -22,7 +22,7 @@ dependencies {
 	implementation "com.android.support:support-annotations:$supportVersion"
 	implementation 'com.android.support.constraint:constraint-layout:1.1.0'
 
-	implementation('ch.acra:acra:4.8.5') {
+	implementation('ch.acra:acra:4.9.1') {
 		exclude module: 'support-v4'
 		exclude module: 'support-annotations'
 	}
@@ -61,7 +61,7 @@ dependencyVerification {
 			'android.arch.lifecycle:viewmodel:1.1.0:viewmodel-1.1.0.aar:6407c93a5ea9850661dca42a0068d6f3deccefd7228ee69bae1c35d70cbc2557',
 			'backport-util-concurrent:backport-util-concurrent:3.1:backport-util-concurrent-3.1.jar:f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902',
 			'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
-			'ch.acra:acra:4.8.5:acra-4.8.5.aar:afd5b28934d5166b55f261c85685ad59e8a4ebe9ca1960906afaa8c76d8dc9eb',
+			'ch.acra:acra:4.9.1:acra-4.9.1.aar:d2762968c448757a7d6acc9f141881d9632f664988e9723ece33b5f7c79f3bc9',
 			'classworlds:classworlds:1.1-alpha-2:classworlds-1.1-alpha-2.jar:2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3',
 			'com.almworks.sqlite4java:sqlite4java:0.282:sqlite4java-0.282.jar:9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05',
 			'com.android.support.constraint:constraint-layout-solver:1.1.0:constraint-layout-solver-1.1.0.jar:fcb4c7d705754ca3d69b1b2c3caf445a425599fda8caabbcf855d98ea0663e4e',
diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml
index 366cb24e8677cfb6c8a37d96ff34debd29273be5..0f483f12b9b60b6fc7ea8cb5b07a72131a477af4 100644
--- a/briar-android/src/main/AndroidManifest.xml
+++ b/briar-android/src/main/AndroidManifest.xml
@@ -44,7 +44,6 @@
 			android:finishOnTaskLaunch="true"
 			android:label="@string/crash_report_title"
 			android:launchMode="singleInstance"
-			android:process=":briar_error_handler"
 			android:theme="@style/BriarTheme.NoActionBar"
 			android:windowSoftInputMode="stateHidden">
 		</activity>
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
index e9f49eaf9d263c32bed07ee765c617ef16b7a511..2bf0f9381ff810c8a5b89f1905838cfd387c262a 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
@@ -3,6 +3,7 @@ package org.briarproject.briar.android.reporting;
 import android.content.res.Configuration;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatDelegate;
 import android.support.v7.widget.Toolbar;
 import android.view.LayoutInflater;
@@ -33,7 +34,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.logging.Logger;
 
-import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_YES;
+import static android.os.Build.VERSION.SDK_INT;
 import static android.view.View.GONE;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
@@ -84,11 +85,27 @@ public class DevReportActivity extends BaseCrashReportDialog
 	}
 
 	@Override
-	public void onCreate(Bundle state) {
-		getDelegate().setLocalNightMode(MODE_NIGHT_YES);
+	protected void preInit(@Nullable Bundle savedInstanceState) {
+		super.preInit(savedInstanceState);
 		getDelegate().installViewFactory();
-		getDelegate().onCreate(state);
-		super.onCreate(state);
+		getDelegate().onCreate(savedInstanceState);
+		if (getDelegate().applyDayNight()) {
+			// If DayNight has been applied, we need to re-apply the theme for
+			// the changes to take effect. On API 23+, we should bypass
+			// setTheme(), which will no-op if the theme ID is identical to the
+			// current theme ID.
+			int theme = R.style.BriarTheme_NoActionBar;
+			if (SDK_INT >= 23) {
+				onApplyThemeResource(getTheme(), theme, false);
+			} else {
+				setTheme(theme);
+			}
+		}
+	}
+
+	@Override
+	public void init(Bundle state) {
+		super.init(state);
 
 		getDelegate().setContentView(R.layout.activity_dev_report);
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
index 465075dcaf8d646d86bbd2fa6363c3cc0bced2be..349bbfe02e7d59d3160e9abe53810a38d095e36d 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
@@ -164,6 +164,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
 				// activate new theme
 				UiUtils.setTheme(getActivity(), (String) newValue);
 				// bring up parent activity, so it can change its theme as well
+				// upstream bug: https://issuetracker.google.com/issues/38352704
 				Intent intent =
 						new Intent(getActivity(), NavDrawerActivity.class);
 				intent.setFlags(