FAILURE: Build failed with an exception.
Build file 'App/build.gradle' line: 45
- What went wrong:
A problem occurred evaluating project ':App'.
Ambiguous method overloading for method
Cannot resolve which method to invoke for
[null, class java.lang.String] due to overlapping prototypes
[class java.lang.String, class java.lang.String]
[class java.io.File, class java.lang.String]
signingConfig signingConfigs.(System.getenv("SIGNING_CONFIG") ?: "release")
The error message has been changed in September 2014. It is now clearer and explicitely points out that the problem is that Gradle can't find the SDK; the rest of the answer still applies to old versions (<0.13) of the Gradle plugin.
This is due to Gradle not being able to find the SDK location, and thus failling when doing something that needs the Android SDK, such as getting the default Proguard file location.
Actually, this is what Gradle will tell you if you temporarily comment out that line:
SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
You can fix it:
By defining the SDK location in
local.properties: simply add
sdk.dir=/path/to/sdk to that file.
By setting the SDK location in environment variable
ANDROID_HOME: you just need to set the environment variable by adding
ANDROID_HOME=/path/to/sdk gradle build.
When using a version control system, it is perfectly fine to set the location locally in your own
local.properties, as manually setting the environment variable every time you need to use Gradle would be annoying. Just make sure to not check it into your repository.