【问题标题】:Android Studio can't find fileAndroid Studio 找不到文件
【发布时间】:2013-12-22 17:21:25
【问题描述】:

我将我的签名密钥添加到项目根目录下的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

如何将AS指向它?

【问题讨论】:

    标签: android gradle android-studio


    【解决方案1】:

    在命令行编译与从 Android Studio 编译时,工作目录的内容似乎存在问题。我发现那里存在差异,我需要进一步调查并可能提交错误。无论如何,最好明确指出路径以防止混淆。

    试试这个:

    p.load(new FileInputStream(rootProject.file('keys/sign.properties')))
    

    这将确定文件相对于 project(不是 module)根目录,这也是 settings.gradle 文件所在的位置。

    编辑

    我为此提交了错误https://code.google.com/p/android/issues/detail?id=64018。我在上面向您展示的解决方法应该做得很好,并且在任何情况下都可能是最佳实践。

    【讨论】:

    • 感谢您帮助解决问题
    • 我对问题添加了评论“我不介意使用rootProject,但为什么从文件中编译依赖项工作完美compile files('libs/MixpanelAPI.jar')?我更喜欢有一致的行为”
    • 我怀疑插件中的实现不一致。 files 函数不能像任意 Groovy 脚本那样依赖于工作目录。
    • compile files('libs/MixpanelAPI.jar') 中的方法files()file() 相同。它们都是项目对象上的方法,并且基于项目的相对路径工作。一个返回一个文件,另一个返回一个文件集合。
    猜你喜欢
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2020-10-24
    相关资源
    最近更新 更多