当gradle build
我的项目时,我收到此错误:
失败:构建因异常而失败。
其中:
构建文件' App / build.gradle' line:45出了什么问题:
评估项目时出现问题':App'。模糊方法重载方法 java.io.File#。
无法解析要调用的方法 [null,类java.lang.String]由于原型重叠 之间:
[类java.lang.String,类java.lang.String]
[类java.io.File,类java.lang.String]
所述行是第一个proguardFile
规则:
buildTypes {
release {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.(System.getenv("SIGNING_CONFIG") ?: "release")
runProguard true
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
proguardFile 'proguard-rules.txt'
}
}
我没有获得任何local.properties
文件,也没有在Android Studio中打开该项目。
我的项目有什么问题?我该如何解决这个错误?
答案 0 :(得分:54)
The error message has been changed in September 2014.现在更清楚,更明确地指出问题是Gradle无法找到SDK;答案的其余部分仍然适用于Gradle插件的旧版本(<0.13)。
这是由于Gradle无法找到SDK位置,因此在执行需要Android SDK的操作时会出现问题,例如获取默认的Proguard文件位置。
实际上,如果您暂时注释掉该行,Gradle会告诉您这一点:
找不到SDK位置。使用sdk.dir在local.properties文件中或使用ANDROID_HOME环境变量定义位置。
你可以解决它:
通过在local.properties
中定义SDK位置:只需将sdk.dir=/path/to/sdk
添加到该文件中。
通过在环境变量ANDROID_HOME
中设置SDK位置:您只需在ANDROID_HOME=/path/to/sdk
之前添加gradle
来设置环境变量。< / p>
示例:ANDROID_HOME=/path/to/sdk gradle build
。
使用版本控制系统时,可以在您自己的local.properties
中本地设置位置,因为每次需要使用Gradle时手动设置环境变量会很烦人。只需确保不将其检入您的存储库。
答案 1 :(得分:0)
我每天都这样做,通过发出以下命令创建local.properties(-p是我的清单文件的路径,-t是当前目标):
android project update -p . -t android-19
如果是Gradle Builds:
android project update .p ./YourApp/src/main/ -t android-19
cp ./YourApp/src/main/local.properties ./local.properties # or ln if you feel so
答案 2 :(得分:0)
在我的情况下,我必须在Android Studio项目的模块设置中设置Android NDK和SDK位置。