build.gradle中的相对路径因Windows和OS X而异

Jav*_*nes 12 android android-gradle-plugin

我的项目有一个包含密钥库文件的文件夹(file.keystore).这是结构:

+---.gradle
|   \---2.2
|       \---taskArtifacts
+---.idea
|   +---copyright
|   \---libraries
+---app
|   +---build
|   |   +---generated
|   +---libs
|   \---src
|       +---androidTest
|       \---main
+---build
|   \---intermediates
|       \---dex-cache
+---gradle
|   \---wrapper
\---keystore
Run Code Online (Sandbox Code Playgroud)

要在build.gradle中使用它,我使用:

signingConfigs {
    project {
        keyAlias 'project'
        keyPassword 'blabla'
        storeFile file('keystore\\file.keystore')
        storePassword 'blabla'
    }
Run Code Online (Sandbox Code Playgroud)

在Windows中,一切都是正确的,因为它搜索:

/project/keystore/file.keystore

但在OS X中,它正在搜索:

/project/app/keystore/file.keystore

我应该如何在build.gradle中编码?

小智 17

尝试

project {
    keyAlias 'project'
    keyPassword 'blabla'
    storeFile file('../keystore/file.keystore')
    storePassword 'blabla'
}
Run Code Online (Sandbox Code Playgroud)

我认为为时已晚.但也许这会帮助某些人遇到同样的问题.


Roh*_*kar 14

使用groovy String Interpolation $rootDir属性.

project {
   ...     
   storeFile file("$rootDir\keystore\file.keystore")
   ...
}
Run Code Online (Sandbox Code Playgroud)

请注意它使用"双引号"