Android 安卓工作室可以';找不到文件

Android 安卓工作室可以';找不到文件,android,gradle,android-studio,Android,Gradle,Android Studio,我已将签名密钥添加到项目根目录中的keys文件夹中: .\ keys\ sign.properties src\ main\ build.gradle 我在构建脚本中添加了以下几行: signingConfigs { release { Properties p = new Properties() p.load(new FileInputStream('keys/sign.properties'))

我已将签名密钥添加到项目根目录中的
keys
文件夹中:

.\

   keys\
       sign.properties
   src\
       main\
   build.gradle
我在构建脚本中添加了以下几行:

signingConfigs {
    release {
        Properties p = new Properties()
        p.load(new FileInputStream('keys/sign.properties'))

        storeFile file(p.file)
        storePassword p.password
        keyAlias p.alias
        keyPassword p.keyPassword
    }
}
命令行gradle build能够组装build。但是Android Studio给我的错误是找不到文件
sign.properties


如何指出这一点?

在命令行上编译与从Android Studio编译时,工作目录似乎有问题。我发现有一个不一致的地方,我需要进一步调查,并可能提出一个错误。在任何情况下,最好明确地确定路径以防止混淆

试试这个:

p.load(new FileInputStream(rootProject.file('keys/sign.properties')))
这将确定文件相对于项目(而不是模块)根的位置,这也是
settings.gradle
文件所在的位置

编辑


我申请了这个。我在上面向您展示的解决方法应该做得很好,而且在任何情况下都可能是最佳实践。

在命令行上编译与从Android Studio编译时,工作目录的内容似乎有问题。我发现有一个不一致的地方,我需要进一步调查,并可能提出一个错误。在任何情况下,最好明确地确定路径以防止混淆

试试这个:

p.load(new FileInputStream(rootProject.file('keys/sign.properties')))
这将确定文件相对于项目(而不是模块)根的位置,这也是
settings.gradle
文件所在的位置

编辑


我申请了这个。我在上面向您展示的解决方法应该做得很好,在任何情况下都可能是最佳实践。

感谢您的帮助并启动了该问题我在问题中添加了评论“我不介意使用
rootProject
但是为什么从文件编译依赖项可以完美地工作
编译文件('libs/MixpanelAPI.jar'))
?我更喜欢一致的行为“我怀疑插件中的实现不一致。
files
函数不能像任意Groovy脚本那样依赖于工作目录。在
compilefiles('libs/MixpanelAPI.jar')
中,方法
files()
file()
相同。它们都是基于项目对象的方法和基于项目相对路径的工作。一个返回一个文件,另一个返回一个文件集合。感谢您的帮助并启动该问题。我对该问题添加了评论“我不介意使用
rootProject
,但为什么从文件编译依赖项可以完美地工作
编译文件('libs/MixpanelAPI.jar')
?我更喜欢一致的行为”我怀疑插件中的实现不一致。
files
函数不能像任意Groovy脚本那样依赖于工作目录。在
compilefiles('libs/MixpanelAPI.jar')
中,方法
files()
file()
相同。它们都是基于项目对象的方法和基于项目相对路径的工作。一个返回文件,另一个返回文件集合。