diff --git a/cmake/rosjava.cmake.em b/cmake/rosjava.cmake.em
index b867f5b6af87b2fb6f93d341cd9d0ef694d8cbbb..87cf7cd5824452ca6c743c90a476d3908dfbb908 100644
--- a/cmake/rosjava.cmake.em
+++ b/cmake/rosjava.cmake.em
@@ -67,7 +67,7 @@ endmacro()
 # RosJava Package
 ##############################################################################
 # Calls the gradle wrapper to compile just the package
-# that it is called in with install and installApp targets.
+# that it is called in with install and installDist targets.
 macro(catkin_rosjava_setup)
     catkin_rosjava_env_setup()
     find_gradle()
diff --git a/src/rosjava_build_tools/create_android_project.py b/src/rosjava_build_tools/create_android_project.py
index d31d2dc28d794094cb3c5a679bc9022320b41711..c8fdc63c10ddfb5e0eaf203ebff7323be32e527d 100644
--- a/src/rosjava_build_tools/create_android_project.py
+++ b/src/rosjava_build_tools/create_android_project.py
@@ -11,6 +11,7 @@ import sys
 import argparse
 import subprocess
 import shutil
+import exceptions
 
 # local imports
 import utils
@@ -71,6 +72,10 @@ def actually_create_android_project(package_name, target_version, java_package_n
     except subprocess.CalledProcessError:
         print("Error")
         raise subprocess.CalledProcessError("failed to create android project.")
+    except exceptions.OSError as e:
+        print("OS error" + str(e))
+        raise exceptions.OSError()
+
     # This is in the old form, let's shovel the shit around to the new form
     utils.mkdir_p(os.path.join(path, 'src', 'main', 'java'))
     os.remove(os.path.join(path, 'local.properties'))
diff --git a/src/rosjava_build_tools/create_rosjava_project.py b/src/rosjava_build_tools/create_rosjava_project.py
index 62136c2895185dfe56b3f87ba336b83d04ec0e0a..e9c4e76ca5b7617c13480c57479197cc6ced7350 100644
--- a/src/rosjava_build_tools/create_rosjava_project.py
+++ b/src/rosjava_build_tools/create_rosjava_project.py
@@ -175,8 +175,8 @@ def add_tasks_to_cmake_setup(tasks):
         gradle_tasks = set([])
         if rosjava_setup_string.find("publish") == -1:
             gradle_tasks.add("publish")
-        if rosjava_setup_string.find("installApp") == -1:
-            gradle_tasks.add("installApp")
+        if rosjava_setup_string.find("installDist") == -1:
+            gradle_tasks.add("installDist")
         gradle_tasks |= set(tasks)
         console.pretty_print('  File      : ', console.cyan)
         console.pretty_println('CMakeLists.txt (gradle task update)', console.yellow)
@@ -236,7 +236,7 @@ def create_rosjava_project():
     author = args.author
     create_rosjava_project_common(args, 'rosjava_project')
     create_talker_listener_classes(project_name, 'rosjava_project', author)
-    add_tasks_to_cmake_setup(['installApp', 'publish'])
+    add_tasks_to_cmake_setup(['installDist', 'publish'])
 
 
 def create_rosjava_library_project():
diff --git a/src/rosjava_build_tools/gradle/Readme.md b/src/rosjava_build_tools/gradle/Readme.md
index 8ef61da49ecedf982d97b4c0534b99df0e77d3e1..e82053520b84213ed6e2a32c03f20947dc3a2004 100644
--- a/src/rosjava_build_tools/gradle/Readme.md
+++ b/src/rosjava_build_tools/gradle/Readme.md
@@ -1,3 +1,3 @@
 This is not installed, but it gets used to generate the gradle wrapper for a project.
 
-It is currently the gradle wrapper supporting gradle 2.14.1
+It is currently the gradle wrapper supporting gradle 3.5.1
diff --git a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar
index 3c7abdf12790879c06b07176de29647f77aa4129..72eace8d2cd26647484a02ff636d0291f22eee41 100644
Binary files a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar and b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
index 0f9159b337c45c7c0cc7bd24eed0ad860f86616c..7004efb677f15e4d7cfc17e6d186138df3f022a6 100644
--- a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
+++ b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Feb 11 20:39:17 KST 2015
+#Fri Jan 26 13:47:21 ART 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-bin.zip
diff --git a/src/rosjava_build_tools/templates/android_package/build.gradle.in b/src/rosjava_build_tools/templates/android_package/build.gradle.in
index cf103629f9a7618b4098808263a6e75cef8b6393..4b7ef0f70b958132ed3b430282e285c3fa91b682 100644
--- a/src/rosjava_build_tools/templates/android_package/build.gradle.in
+++ b/src/rosjava_build_tools/templates/android_package/build.gradle.in
@@ -15,7 +15,7 @@
  */
 
 task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
+    gradleVersion = '3.5.1'
 }
 
 buildscript {
diff --git a/src/rosjava_build_tools/templates/rosjava_package/CMakeLists.txt.in b/src/rosjava_build_tools/templates/rosjava_package/CMakeLists.txt.in
index 78952fc9aadeb488a0543b6bfc3cdd87811d8682..bef17fdc0c5571d38403141914b4a067fd941558 100644
--- a/src/rosjava_build_tools/templates/rosjava_package/CMakeLists.txt.in
+++ b/src/rosjava_build_tools/templates/rosjava_package/CMakeLists.txt.in
@@ -12,7 +12,7 @@ project(%(repo_name)s)
 find_package(catkin REQUIRED rosjava_build_tools)
 
 # Set the gradle targets you want catkin's make to run by default, e.g.
-#   catkin_rosjava_setup(installApp)
+#   catkin_rosjava_setup(installDist)
 # Note that the catkin_create_rosjava_xxx scripts will usually automatically
 # add tasks to this for you when you create subprojects.
 catkin_rosjava_setup()
diff --git a/src/rosjava_build_tools/templates/rosjava_package/build.gradle.in b/src/rosjava_build_tools/templates/rosjava_package/build.gradle.in
index 2de70bd69c71ee782d244c3351f604c07ae9dff2..37837c5c3cad1ec9e6b4ce1cea1da4e4fb281f58 100644
--- a/src/rosjava_build_tools/templates/rosjava_package/build.gradle.in
+++ b/src/rosjava_build_tools/templates/rosjava_package/build.gradle.in
@@ -15,7 +15,7 @@
  */
 
 task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
+    gradleVersion = '3.5.1'
 }
 
 buildscript {
@@ -59,9 +59,9 @@ subprojects {
 
     install: deploys jar's to MavenLocal() (i.e. ~/.m2/repository)
     publish : deploys jar's to devel/share/maven
-    installApp : assembles java apps in the _subproject_/build directories.
+    installDist : assembles java apps in the _subproject_/build directories.
 
-  Note that these are dependent on the type of project (e.g. installApp is only valid for
+  Note that these are dependent on the type of project (e.g. installDist is only valid for
   java binary subprojects, while publish is only added once a subproject is included.
   If you're using catkin_make, this is not important, since it will use the task list specified
   in CMakeLists.txt
diff --git a/src/rosjava_build_tools/templates/rosjava_project/build.gradle.in b/src/rosjava_build_tools/templates/rosjava_project/build.gradle.in
index 6fbec4f1d7e0f5cf4f6efaa3ae0c7466c10a5d8e..c022fcf6386f294cf6c85debeb0ef60401456830 100644
--- a/src/rosjava_build_tools/templates/rosjava_project/build.gradle.in
+++ b/src/rosjava_build_tools/templates/rosjava_project/build.gradle.in
@@ -14,7 +14,7 @@
  * the License.
  */
 
-/* This plugin is necessary for creating installApp tasks (i.e. executables) */
+/* This plugin is necessary for creating installDist tasks (i.e. executables) */
 apply plugin: 'application'
 mainClassName = 'org.ros.RosRun'