Gradle错误 - 无法为arguments/path/to/storefile找到方法storeFile()

Roy*_*ley 4 android android-studio android-gradle-plugin

我已经回顾了关于这个主题的一些帖子,

对于初学者.但我仍然无法通过第Error:(69, 0) Could not find method storeFile() for arguments [/path/to/my.keystore]69行的Gradle错误:

storeFile file(keystoreProperties['storeFile'])
Run Code Online (Sandbox Code Playgroud)

在模块gradle构建文件中 - 我的模块gradle.build文件的内容:

apply plugin: 'com.android.application'
apply plugin: 'signing'

android {

    ...

    buildTypes {

        ...

        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            def keystorePropertiesFile = rootProject.file("keystore.properties");
            def keystoreProperties = new Properties()
            keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']

        }

        ...

    }

    ...

}

...
Run Code Online (Sandbox Code Playgroud)

我加载keystore.properties文件(位于项目根目录),其中包含:

storeFile=/path/to/my.keystore
storePassword=storepwd
keyPassword=keypwd
keyAlias=keyalias
Run Code Online (Sandbox Code Playgroud)

如您所见,我在gradle.build文件的storeFile引用中有一个文件构造函数,在属性文件中有一个keystore的路径.

错误在哪里,或者我错过了什么,不理解?

参考

  • Android Studio 2.3.3
  • Gradle 4.1版

Gab*_*tti 12

您必须在signing不在块中的buildTypes块中添加此DSL .

signingConfigs {
        release {
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']

        }
    }
Run Code Online (Sandbox Code Playgroud)