Gradle schlägt mit " Mehrdeutige Überladen von Methoden für Verfahren java.io.File # < init > "

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

Wenn gradle build ing mein Projekt, ich bekomme diese Fehlermeldung:

FEHLER : mit einer Ausnahme gescheitert zu bauen.

Wo : Build -Datei " App / build.gradle " Linie : 45

Was ist schief gelaufen : Es trat ein Problem Auswertung Projekt " : App'.Ambiguous Methode Überlastung für Verfahren   java.io.File # . Kann nicht aufgelöst werden, welche Methode für die Versagung   [null, Klasse java.lang.String ] durch überlappende Prototypen   zwischen : [ Klasse java.lang.String, Klasse java.lang.String ]   [class java.io.File, Klasse java.lang.String ]

Dieser Linie ist die erste proguardFile Regel:

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

Ich habe nicht jede Datei local.properties, noch öffnete das Projekt im Android Studio .

Was ist los mit meinem Projekt ? Wie kann ich diesen Fehler beheben ?

---

Top 5 Antwort

1L&#233;o Lam @

Dies ist auf Gradle nicht in der Lage, um die SDK Standort zu finden und damit failling, wenn etwas, das Android SDK muss tun, wie immer die Standard Proguard Speicherort .

Eigentlich ist das, was Gradle wird Ihnen sagen, wenn Sie vorübergehend diese Zeile zu kommentieren :

SDK Standort nicht gefunden. Lage definieren mit sdk.dir im local.properties Datei oder mit einem ANDROID_HOME Umgebungsvariable .

You can fix it:

Durch die Definition des SDK Lage im local.properties : Fügen Sie einfach sdk.dir=/path/to/sdk in diese Datei .

Durch die Einstellung der SDK Lage in Umgebungsvariable ANDROID_HOME : Sie müssen nur die Umgebungsvariable durch den Zusatz ANDROID_HOME=/path/to/sdk vor gradle gesetzt.

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

Bei Verwendung eines Versionskontrollsystems ist es völlig in Ordnung, die Lage vor Ort im eigenen Set local.properties, wie die manuelle Einstellung der Umgebungsvariablen jedes Mal wenn Sie Gradle verwenden wäre ärgerlich benötigen . So stellen Sie sicher, dass Sie nicht zu überprüfen Sie ihn auf Ihrer Repository .

2igraczech @

Ich tue dies jeden Tag, die Schaffung local.properties indem Sie folgenden Befehl ( -p Pfad zu meinem Manifest-Datei, -t ist aktuelles Ziel ) :

android project update -p . -t android-19

Im Falle der Gradle Baut :

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