对于方法java.io.File#<init>&#34; </init>,Gradle失败,并且#34;模糊方法重载

时间:2014-05-22 15:35:41

标签: android gradle android-gradle

gradle build我的项目时,我收到此错误:

  

失败:构建因异常而失败。

     
      
  • 其中:
    构建文件&#39; App / build.gradle&#39; line:45

  •   
  • 出了什么问题:
    评估项目时出现问题&#39;:App&#39;。模糊方法重载方法   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中打开该项目。

我的项目有什么问题?我该如何解决这个错误?

3 个答案:

答案 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位置。