gradle: Allow absolute paths to keystore files
diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle
index 2e4d5cb..974a19f 100644
--- a/bin/templates/project/build.gradle
+++ b/bin/templates/project/build.gradle
@@ -180,14 +180,21 @@
 
 def addSigningProps(propsFilePath, signingConfig) {
     def propsFile = file(propsFilePath)
+    def props = new Properties()
     propsFile.withReader { reader ->
-        def props = new Properties()
         props.load(reader)
-        signingConfig.keyAlias = ensureValueExists(propsFilePath, props, 'keyAlias')
-        signingConfig.keyPassword = props.get('keyPassword')
-        signingConfig.storeFile = RelativePath.parse(true, ensureValueExists(propsFilePath, props, 'storeFile')).getFile(propsFile.getParentFile())
-        signingConfig.storePassword = props.get('storePassword')
     }
+    def storeFile = new File(ensureValueExists(propsFilePath, props, 'storeFile'))
+    if (!storeFile.isAbsolute()) {
+        storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
+    }
+    if (!storeFile.exists()) {
+        throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
+    }
+    signingConfig.keyAlias = ensureValueExists(propsFilePath, props, 'keyAlias')
+    signingConfig.keyPassword = props.get('keyPassword')
+    signingConfig.storeFile = storeFile
+    signingConfig.storePassword = props.get('storePassword')
 }
 
 if (file('build-extras.gradle').exists()) {