我正在尝试使用gradle构建文件对我的应用程序进行签名。当我使用普通的signingConfigs时,它可以工作(signingConfigs.release)!但是,如果我试图从属性文件中读取属性,它将无法正常工作。 (signingConfigs.config)

Properties props = new Properties();
props.load(new FileInputStream(file(rootProject.file("signing.properties"))))

android {
        signingConfigs {
            config {
                storeFile file(props["storeFile"])
                storePassword props["storePassword"]
                keyAlias props["keyAlias"]
                keyPassword props["KeyPassword"]
            }
            release {
                storeFile file("..\\xyz.jks")
                storePassword "****"
                keyAlias "****"
                keyPassword "****"
            }
        }
    .
    .
    .
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
                signingConfig signingConfigs.release
            }
            debug {
                applicationIdSuffix '.debug'
                versionNameSuffix '-SNAPSHOT'
            }
        }

属性文件:
storeFile=xyz.jks
storePassword=xyz
keyAlias=xyz
keyPassword=xyz

当我运行该项目时,android studios会显示一个对话框,其中显示:



可以正确读取属性文件,因为我可以从控制台中记录该文件中的某些属性。

我的一些系统详细信息:

Android Studio 0.8.6
Windows 8.1 x64
摇动1.12

希望任何人都能帮助我。如果您想了解更多详细信息,请询问我。

最佳答案

这是我的工作,对我有用:

signingConfigs {
    release {
        def Properties localProps = new Properties()
        localProps.load(new FileInputStream(file('../local.properties')))
        def Properties keyProps = new Properties()
        assert localProps['keystore.props.file'];
        keyProps.load(new FileInputStream(file(localProps['keystore.props.file'])))
        storeFile file(keyProps["store"])
        keyAlias keyProps["alias"]
        storePassword keyProps["storePass"]
        keyPassword keyProps["pass"]
    }
}

我的local.properties文件包含“keystore.properties”文件的路径。包含有关密钥库的信息:
store=***
alias=***
pass=***
storePass=***

也许两个Propreties文件的加载是多余的,但是对我来说确实有用。

08-06 01:50
查看更多