Gradle抱怨"没有这样的文件或目录"

use*_*225 6 groovy gradle build.gradle android-gradle-plugin

我正在使用Android Studio和Gradle构建脚本.

在我的Android项目的根目录下,有一个名为'other'的文件夹,在'other'文件夹中,有一个属性文件my.properties.

-MyApp/
     …
    -other/
         -my.properties  
    -build.gradle
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle中,我尝试访问my.properties:

task accessMyProperties {
    def folderName = 'other';

    //Gradle complains this line
    def file = new File("$folderName/my.properties");
    ...
}
Run Code Online (Sandbox Code Playgroud)

但gradle抱怨说:

* What went wrong:
A problem occurred evaluating project ':MyApp'.
> other/my.properties (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

为什么gradle出现上述错误?如何摆脱它?

Sco*_*rta 10

在Gradle构建脚本中使用纯相对路径时要小心; 那些在调用构建时依赖于工作目录,这不是你应该依赖的东西.把你的路径对抗$projectDir或者更好$rootDir.尝试这样的事情:

def file = new File("$projectDir/$folderName/my.properties");
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.gradle.org/docs/current/dsl/org.gradle.api.Project.html以获取可以使用的变量列表.