diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b2332861165bb74aa86a619ebc52a1ef9959ab1b..7aa729903123e0cbc550b44890c5a8809922f4dc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,8 +6,19 @@ cache:
     - .gradle/caches
 
 before_script:
+  - set -e
   - export GRADLE_USER_HOME=$PWD/.gradle
-  - echo y | /opt/android-sdk/tools/bin/sdkmanager "build-tools;23.0.3"
+  # Install the Android support repository
+  # TODO: Remove this when we upgrade the support library
+  - echo y | /opt/android-sdk/tools/bin/sdkmanager 'extras;android;m2repository'
+  # Download OpenJDK 6 so we can compile against its standard library
+  - JDK_FILE=openjdk-6-jre-headless_6b38-1.13.10-1~deb7u1_amd64.deb
+  - if [ ! -d openjdk ]
+  - then
+  - wget -q http://ftp.uk.debian.org/debian/pool/main/o/openjdk-6/$JDK_FILE
+  - dpkg-deb -x $JDK_FILE openjdk
+  - fi
+  - export JAVA_6_HOME=$PWD/openjdk/usr/lib/jvm/java-6-openjdk-amd64
 
 test:
   script:
diff --git a/bramble-android/build.gradle b/bramble-android/build.gradle
index 95c19866b5714a55ce61381cd523b3ab67148b47..a36d5a2c3d006e935f04f553b58d86315a15608a 100644
--- a/bramble-android/build.gradle
+++ b/bramble-android/build.gradle
@@ -6,8 +6,8 @@ apply plugin: 'witness'
 apply plugin: 'de.undercouch.download'
 
 android {
-	compileSdkVersion 23
-	buildToolsVersion '25.0.0'
+	compileSdkVersion 26
+	buildToolsVersion '26.0.2'
 
 	defaultConfig {
 		minSdkVersion 14
@@ -18,14 +18,17 @@ android {
 	}
 
 	compileOptions {
-		sourceCompatibility JavaVersion.VERSION_1_7
-		targetCompatibility JavaVersion.VERSION_1_7
+		sourceCompatibility JavaVersion.VERSION_1_8
+		targetCompatibility JavaVersion.VERSION_1_8
 	}
 }
 
 dependencies {
 	compile project(path: ':bramble-core', configuration: 'default')
 	compile fileTree(dir: 'libs', include: '*.jar')
+
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2'
+
 	provided 'javax.annotation:jsr250-api:1.0'
 }
 
diff --git a/bramble-api/build.gradle b/bramble-api/build.gradle
index f1d0018e602664d0727c51f89bec899f25c6d102..7b03f5c18869fbec6f3cb67dfecfefedc322bcec 100644
--- a/bramble-api/build.gradle
+++ b/bramble-api/build.gradle
@@ -1,12 +1,11 @@
 apply plugin: 'java'
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
 
 apply plugin: 'witness'
 
 dependencies {
 	compile "com.google.dagger:dagger:2.0.2"
-	compile 'com.google.dagger:dagger-compiler:2.0.2'
 	compile 'com.google.code.findbugs:jsr305:3.0.2'
 
 	testCompile 'junit:junit:4.12'
@@ -20,11 +19,8 @@ dependencies {
 dependencyVerification {
 	verify = [
 			'com.google.dagger:dagger:84c0282ed8be73a29e0475d639da030b55dee72369e58dd35ae7d4fe6243dcf9',
-			'com.google.dagger:dagger-compiler:b74bc9de063dd4c6400b232231f2ef5056145b8fbecbf5382012007dd1c071b3',
 			'com.google.code.findbugs:jsr305:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
 			'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
-			'com.google.dagger:dagger-producers:99ec15e8a0507ba569e7655bc1165ee5e5ca5aa914b3c8f7e2c2458f724edd6b',
-			'com.google.guava:guava:d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99',
 	]
 }
 
@@ -39,3 +35,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
 artifacts {
 	testOutput jarTest
 }
+
+// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
+tasks.withType(JavaCompile) {
+	useJava6StandardLibrary(it)
+}
diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle
index dfe194a316e57651fe2f2717243a28609558927c..324947821de08c852c3e62026dca211f5da32ebb 100644
--- a/bramble-core/build.gradle
+++ b/bramble-core/build.gradle
@@ -1,12 +1,9 @@
-plugins {
-	id 'java'
-	id 'net.ltgt.apt' version '0.9'
-	id 'idea'
-}
-
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
+apply plugin: 'java'
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
 
+apply plugin: 'net.ltgt.apt'
+apply plugin: 'idea'
 apply plugin: 'witness'
 
 dependencies {
@@ -15,7 +12,11 @@ dependencies {
 	compile 'com.h2database:h2:1.4.192' // This is the last version that supports Java 1.6
 	compile 'org.bitlet:weupnp:0.1.4'
 
+	apt 'com.google.dagger:dagger-compiler:2.0.2'
+
 	testCompile project(path: ':bramble-api', configuration: 'testOutput')
+
+	testApt 'com.google.dagger:dagger-compiler:2.0.2'
 }
 
 dependencyVerification {
@@ -37,3 +38,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
 artifacts {
 	testOutput jarTest
 }
+
+// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
+tasks.withType(JavaCompile) {
+	useJava6StandardLibrary(it)
+}
diff --git a/bramble-j2se/build.gradle b/bramble-j2se/build.gradle
index 5b3cf67866c1cee49fdd14b8045e92a23642a119..f920589eb2ba378bb737fdd892540523e85efec1 100644
--- a/bramble-j2se/build.gradle
+++ b/bramble-j2se/build.gradle
@@ -1,7 +1,9 @@
 apply plugin: 'java'
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
 
+apply plugin: 'net.ltgt.apt'
+apply plugin: 'idea'
 apply plugin: 'witness'
 
 dependencies {
@@ -10,6 +12,8 @@ dependencies {
 	compile 'net.java.dev.jna:jna:4.4.0'
 	compile 'net.java.dev.jna:jna-platform:4.4.0'
 
+	apt 'com.google.dagger:dagger-compiler:2.0.2'
+
 	testCompile project(path: ':bramble-core', configuration: 'testOutput')
 }
 
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index 409de97f17e76d64d50720a1bde572e8d00ccced..274598674bb676ce1c4be4e4ed3499bd3f11983d 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -2,9 +2,11 @@ apply plugin: 'com.android.application'
 apply plugin: 'witness'
 
 dependencies {
-	def supportVersion = '23.2.1'
 	compile project(path: ':briar-core', configuration: 'default')
+	compile project(path: ':bramble-core', configuration: 'default')
 	compile project(path: ':bramble-android', configuration: 'default')
+
+	def supportVersion = '23.2.1'
 	compile "com.android.support:support-v4:$supportVersion"
 	compile("com.android.support:appcompat-v7:$supportVersion") {
 		exclude module: 'support-v4'
@@ -23,6 +25,7 @@ dependencies {
 		exclude module: 'support-v4'
 		exclude module: 'support-annotations'
 	}
+
 	compile 'info.guardianproject.panic:panic:0.5'
 	compile 'info.guardianproject.trustedintents:trustedintents:0.2'
 	compile 'de.hdodenhof:circleimageview:2.1.0'
@@ -31,10 +34,12 @@ dependencies {
 	compile 'com.github.bumptech.glide:glide:3.8.0'
 	compile 'uk.co.samuelwall:material-tap-target-prompt:1.9.2'
 
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2'
+
 	provided 'javax.annotation:jsr250-api:1.0'
 
 	testCompile project(path: ':bramble-core', configuration: 'testOutput')
-	testCompile 'org.robolectric:robolectric:3.0'
+	testCompile 'org.robolectric:robolectric:3.5.1'
 	testCompile 'org.robolectric:shadows-support-v4:3.0'
 	testCompile 'org.mockito:mockito-core:2.8.9'
 }
@@ -76,8 +81,8 @@ def getGitHash = { ->
 }
 
 android {
-	compileSdkVersion 23
-	buildToolsVersion '25.0.0'
+	compileSdkVersion 26
+	buildToolsVersion '26.0.2'
 
 	defaultConfig {
 		minSdkVersion 14
@@ -107,8 +112,14 @@ android {
 	}
 
 	compileOptions {
-		sourceCompatibility JavaVersion.VERSION_1_7
-		targetCompatibility JavaVersion.VERSION_1_7
+		sourceCompatibility JavaVersion.VERSION_1_8
+		targetCompatibility JavaVersion.VERSION_1_8
+	}
+
+	testOptions {
+		unitTests {
+			includeAndroidResources = true
+		}
 	}
 
 	aaptOptions {
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java b/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java
index 68c362b6f952f71602dec392257707370f9a1500..cee3b710f0c283f74cc146f10f5539c6e5404bc0 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java
@@ -9,7 +9,6 @@ import org.briarproject.bramble.api.identity.Author;
 import org.briarproject.bramble.api.identity.AuthorId;
 import org.briarproject.bramble.api.sync.MessageId;
 import org.briarproject.bramble.test.TestUtils;
-import org.briarproject.briar.BuildConfig;
 import org.briarproject.briar.android.TestBriarApplication;
 import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.briar.android.threaded.ThreadItemAdapter;
@@ -22,7 +21,7 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 import java.util.Arrays;
@@ -34,9 +33,8 @@ import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_PUBLIC_K
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-@RunWith(RobolectricGradleTestRunner.class)
-@Config(constants = BuildConfig.class, sdk = 21,
-		application = TestBriarApplication.class,
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = 21, application = TestBriarApplication.class,
 		packageName = "org.briarproject.briar")
 public class ForumActivityTest {
 
@@ -89,8 +87,8 @@ public class ForumActivityTest {
 		MockitoAnnotations.initMocks(this);
 		Intent intent = new Intent();
 		intent.putExtra("briar.GROUP_ID", TestUtils.getRandomId());
-		forumActivity = Robolectric.buildActivity(TestForumActivity.class)
-				.withIntent(intent).create().start().resume().get();
+		forumActivity = Robolectric.buildActivity(TestForumActivity.class,
+				intent).create().start().resume().get();
 	}
 
 	private ThreadItemList<ForumItem> getDummyData() {
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/ChangePasswordActivityTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/ChangePasswordActivityTest.java
index a3eca5c2383a4db0a57228792bb372f3368e6e36..852624f79ebd64af2b70642877624db4d352bf86 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/login/ChangePasswordActivityTest.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/ChangePasswordActivityTest.java
@@ -4,7 +4,6 @@ import android.support.design.widget.TextInputLayout;
 import android.widget.Button;
 import android.widget.EditText;
 
-import org.briarproject.briar.BuildConfig;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.TestBriarApplication;
 import org.briarproject.briar.android.controller.handler.ResultHandler;
@@ -18,7 +17,7 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 import static junit.framework.Assert.assertEquals;
@@ -33,9 +32,8 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-@RunWith(RobolectricGradleTestRunner.class)
-@Config(constants = BuildConfig.class, sdk = 21,
-		application = TestBriarApplication.class,
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = 21, application = TestBriarApplication.class,
 		packageName = "org.briarproject.briar")
 public class ChangePasswordActivityTest {
 
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java
index 21355f07f1787c80df751e7191f7bb7f2fbad5de..7e13211a42ea09f4fe0ebd704e293745d1d33ee3 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java
@@ -5,7 +5,6 @@ import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 
-import org.briarproject.briar.BuildConfig;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.TestBriarApplication;
 import org.junit.Before;
@@ -13,7 +12,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 import static junit.framework.Assert.assertEquals;
@@ -28,9 +27,8 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.shadows.support.v4.SupportFragmentTestUtil.startFragment;
 
-@RunWith(RobolectricGradleTestRunner.class)
-@Config(constants = BuildConfig.class, sdk = 21,
-		application = TestBriarApplication.class,
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = 21, application = TestBriarApplication.class,
 		packageName = "org.briarproject.briar")
 public class PasswordFragmentTest {
 
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
index bf911b3fee662715170c064d7d09a9be225447fa..3f25509033d6c28b2d54624490c69001dd8e6ae8 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
@@ -3,10 +3,6 @@ package org.briarproject.briar.android.login;
 import android.support.design.widget.TextInputLayout;
 import android.widget.EditText;
 
-import com.google.common.base.Strings;
-
-import org.briarproject.bramble.api.identity.AuthorConstants;
-import org.briarproject.briar.BuildConfig;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.TestBriarApplication;
 import org.junit.Assert;
@@ -15,14 +11,29 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 import static junit.framework.Assert.assertEquals;
-
-@RunWith(RobolectricGradleTestRunner.class)
-@Config(constants = BuildConfig.class, sdk = 21,
-		application = TestBriarApplication.class,
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.NONE;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_STRONG;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.WEAK;
+import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
+import static org.briarproject.bramble.util.StringUtils.getRandomString;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = 21, application = TestBriarApplication.class,
 		packageName = "org.briarproject.briar")
 public class SetupActivityTest {
 
@@ -43,9 +54,7 @@ public class SetupActivityTest {
 	@Test
 	public void testNicknameUI() {
 		Assert.assertNotNull(setupActivity);
-		String longNick =
-				Strings.padEnd("*", AuthorConstants.MAX_AUTHOR_NAME_LENGTH + 1,
-						'*');
+		String longNick = getRandomString(MAX_AUTHOR_NAME_LENGTH + 1);
 		nicknameEntry.setText(longNick);
 		// Nickname should be too long
 		assertEquals(nicknameEntryWrapper.getError(),
diff --git a/briar-api/build.gradle b/briar-api/build.gradle
index 2c957a64520e5707072beb2326d6d4e6239a2624..0c6e6e1d76eb9f2fb09e49380b7f13ce8f83945b 100644
--- a/briar-api/build.gradle
+++ b/briar-api/build.gradle
@@ -1,9 +1,12 @@
 apply plugin: 'java'
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
-
-apply plugin: 'witness'
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
 
 dependencies {
 	compile project(path: ':bramble-api', configuration: 'default')
 }
+
+// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
+tasks.withType(JavaCompile) {
+	useJava6StandardLibrary(it)
+}
diff --git a/briar-core/build.gradle b/briar-core/build.gradle
index 8976d7e3a5694c7a0b0ae693baea003cb94522db..a4dddb5a2a42283349038d3849544f0a21fefb4d 100644
--- a/briar-core/build.gradle
+++ b/briar-core/build.gradle
@@ -1,12 +1,9 @@
-plugins {
-	id 'java'
-	id 'net.ltgt.apt' version '0.9'
-	id 'idea'
-}
-
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
+apply plugin: 'java'
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
 
+apply plugin: 'net.ltgt.apt'
+apply plugin: 'idea'
 apply plugin: 'witness'
 
 dependencies {
@@ -16,10 +13,14 @@ dependencies {
 	compile 'com.squareup.okhttp3:okhttp:3.8.0'
 	compile 'org.jsoup:jsoup:1.10.3'
 
+	apt 'com.google.dagger:dagger-compiler:2.0.2'
+
 	testCompile project(path: ':bramble-core', configuration: 'default')
 	testCompile project(path: ':bramble-core', configuration: 'testOutput')
 	testCompile project(path: ':bramble-api', configuration: 'testOutput')
 	testCompile 'net.jodah:concurrentunit:0.4.2'
+
+	testApt 'com.google.dagger:dagger-compiler:2.0.2'
 }
 
 dependencyVerification {
@@ -32,3 +33,8 @@ dependencyVerification {
 			'com.squareup.okio:okio:734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850',
 	]
 }
+
+// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
+tasks.withType(JavaCompile) {
+	useJava6StandardLibrary(it)
+}
diff --git a/briar.iml b/briar.iml
index f2d23be9ad067708f8f34ce21f694a1d84d25d4a..8ebfdb126c2c2c91606f43061a0f3ff738fc99e1 100644
--- a/briar.iml
+++ b/briar.iml
@@ -8,7 +8,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
     <exclude-output />
     <content url="file://$MODULE_DIR$">
       <excludeFolder url="file://$MODULE_DIR$/.gradle" />
diff --git a/build.gradle b/build.gradle
index 80632d5ebffb55db43f052f6cdf8fe0c4ea3fbe9..24e8f774ed479072e5058159963963db74d690bc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -14,12 +14,40 @@ buildscript {
 	repositories {
 		jcenter()
 		mavenLocal()
+		maven {
+			url "https://plugins.gradle.org/m2/"
+		}
+		google()
 	}
 
 	dependencies {
-		classpath 'com.android.tools.build:gradle:2.3.3'
-		classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
+		classpath 'com.android.tools.build:gradle:3.0.0'
+		classpath 'net.ltgt.gradle:gradle-apt-plugin:0.9'
 		classpath 'de.undercouch:gradle-download-task:3.2.0'
 		classpath files('libs/gradle-witness.jar')
 	}
 }
+
+// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
+ext.useJava6StandardLibrary = { task ->
+	def home = System.env.JAVA_6_HOME;
+	if (home != null && !home.isEmpty()) {
+		println "Setting Java 6 bootstrap classpath for ${task.name}"
+		task.dependsOn createJavaLangInvokeJar
+		task.options.bootstrapClasspath = files(
+				"${project.rootDir}/build/invoke.jar",
+				"${home}/jre/lib/rt.jar",
+				"${home}/jre/lib/jsse.jar"
+		)
+	}
+}
+
+// Create a jar containing the java.lang.invoke classes for the Java 6 bootstrap classpath
+task createJavaLangInvokeJar(type: Zip) {
+	archiveName 'invoke.jar'
+	destinationDir file("${project.rootDir}/build")
+	from zipTree("${System.getProperty('java.home')}/lib/rt.jar").matching {
+		include 'java/lang/invoke/*'
+	}
+	include '**/*'
+}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index d7d07763bb3b4e48ee40f5ec75c02af3a66a1d97..0070afbd16ef14014584fbbddcc829c396d21efb 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,6 @@
-#Wed Aug 24 10:55:42 BST 2016
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
-distributionSha256Sum=d84bf6b6113da081d0082bcb63bd8547824c6967fe68704d1e3a6fde822b7212
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
+distributionSha256Sum=c5b67330a8a211539d713852c56a6a80fdea365d8902df92d1759d913d18fa2d
diff --git a/settings.gradle b/settings.gradle
index de661574c253874536c6bd89b1366fc568f62bd0..3f3670622d0acfba7ef41fb6a026608542f8379e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,5 +1,6 @@
-include ':bramble-api', ':bramble-android'
+include ':bramble-api'
 include ':bramble-core'
+include ':bramble-android'
 include ':bramble-j2se'
 include ':briar-api'
 include ':briar-core'