Gradle falha com " método Ambíguo sobrecarga para o método java.io.File # < o init >"

? L&#233;o Lam @ | Original: StackOverFlow
---

Quando gradle build ing meu projeto, eu estou recebendo este erro :

FALHA : Constituição falhou com uma exceção.

Construir arquivo ' App / build.gradle ' linha: : Onde 45

O que deu errado : Ocorreu um problema avaliar projeto ': método App'.Ambiguous sobrecarga para o método   java.io.File # . Não é possível resolver o método a invocar para   [ null, classe java.lang.String ] devido à sobreposição de protótipos   entre : [ classe java.lang.String, classe java.lang.String ]   [ classe java.io.File, classe java.lang.String ]

Disse linha é o primeiro proguardFile regra:

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'
    }
}

Eu não tenho qualquer arquivo local.properties, nem abriu o projeto em Android Studio.

O que está errado com o meu projeto? Como posso corrigir esse erro?

---

Top 5 Responder

1L&#233;o Lam @

Isto é devido ao Gradle não ser capaz de encontrar a localização SDK, e failling assim ao fazer algo que precisa do SDK Android, como obter a localização do arquivo Proguard padrão.

Na verdade, isso é o que Gradle vai dizer se você temporariamente comentar essa linha :

SDK local não foi encontrado. Definir local com sdk.dir no arquivo local.properties ou com uma variável de ambiente ANDROID_HOME .

You can fix it:

Ao definir a localização SDK em local.properties : basta adicionar sdk.dir=/path/to/sdk para esse arquivo.

Ao definir a localização SDK na variável de ambiente ANDROID_HOME : você só precisa definir a variável de ambiente, acrescentando ANDROID_HOME=/path/to/sdk antes gradle .

Exemplo: ANDROID_HOME=/path/to/sdk gradle build .

Ao utilizar um sistema de controle de versão, é perfeitamente bem para definir o local localmente no seu próprio local.properties, como configurar manualmente a variável de ambiente cada vez que você precisar usar Gradle seria chato . Apenas certifique-se que não verificar -lo em seu repositório.

2igraczech @

Estou fazendo isso todos os dias, criando local.properties emitindo seguinte comando (-p é o caminho para o meu arquivo de manifesto, -t é alvo atual ):

android project update -p . -t android-19

Em caso de Gradle Constrói :

android project update .p ./YourApp/src/main/ -t android-19
cp ./YourApp/src/main/local.properties ./local.properties # or ln if you feel so