找不到Gradle DSL方法:storeFile()

Leo*_*nto 7 java android android-studio android-gradle-plugin

我正在使用Android Studio 1.1.0.当我尝试同步我的Gradle文件时,出现以下错误:

找不到Gradle DSL方法:storeFile()

这是我的gradle配置:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "skripsi.ubm.studenttracking"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    signingConfigs {
        release {
            storeFile (project.property("Students_tracking_keystore.jks") + ".keystore")
            storePassword "####"
            keyAlias "####"
            keyPassword "#####"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

stk*_*ent 5

需要注意的几件事:

storeFileDSL方法具有以下特征:

public DefaultSigningConfig setStoreFile(File storeFile)
Run Code Online (Sandbox Code Playgroud)

也就是说,它希望File传递一个a 。您可能需要File在代码中放置一个构造函数,以确保您实际上在创建File对象。因为您当前没有传递文件,所以Gradle抱怨它找不到具有适当签名的方法。

其次,您当前要在文件名后附加两个足够的字符:.jks.keystore。您仅应基于所引用文件的后缀包括其中之一(可能是.jks,但您应该检查一下是否确定)。

简而言之,以下替换行之一可能会为您服务:

storeFile file(project.property("Students_tracking_keystore") + ".keystore")
Run Code Online (Sandbox Code Playgroud)

要么

storeFile file(project.property("Students_tracking_keystore") + ".jks")
Run Code Online (Sandbox Code Playgroud)

要么

storeFile file(project.property("Students_tracking_keystore.keystore"))
Run Code Online (Sandbox Code Playgroud)

要么

storeFile file(project.property("Students_tracking_keystore.jks"))
Run Code Online (Sandbox Code Playgroud)