Gradle завершается с " Неоднозначное перегрузка методов для метода java.io.File # < инициализации > "

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

Когда "____ « ИНГ мой проект, я получаю эту ошибку:

ОТКАЗ : Телосложение неудачу с исключением.

Где: Создание файла ' App / build.gradle " линия: 45

Что пошло не так : Произошлапроблема оценки проекта ': App'.Ambiguous перегрузку метода для метода   java.io.File # . Не удается разрешить, какой метод для вызова для   [ NULL, класс java.lang.String ] из-за перекрытия прототипов   между : [класс java.lang.String, класс java.lang.String ]   [класс java.io.File, класс java.lang.String ]

Указанная линия является первым gradle build правило:

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' } } файл, ни открыть проект в Android Studio.

Что не так с моим проектом ? Как я могу исправить эту ошибку ?

---

Top 5 ответ

1L&#233;o Lam @

Это связано с Gradle не будучи в состоянии найти местоположение SDK, и, таким образом, failling, когда делаете что-то, что нуждается в Android SDK, например, как получение место хранения файла Proguard по умолчанию.

На самом деле, это то, что Gradle скажет вам, если вы временно закомментировать этой линии :

SDK местоположение не найдено . Определить местоположение с sdk.dir в файле local.properties или с переменной окружения ANDROID_HOME .

You can fix it:

Определяя местоположение SDK в local.properties : просто добавьте local.properties к этому файлу .

Установив расположение SDK в переменную среды sdk.dir=/path/to/sdk : нужно просто установить переменную окружения путём добавления ANDROID_HOME до ANDROID_HOME=/path/to/sdk .

Пример: gradle .

При использовании системы контроля версий, это прекрасно, чтобы установить местонахождение локально в свой ​​собственный ANDROID_HOME=/path/to/sdk gradle build, а вручную, установив переменную окружения каждый раз, когда вам нужно использовать Gradle будет раздражать . Просто убедитесь, что не проверить его в хранилище.

2igraczech @

Я делаю это каждый день, создавая local.properties путем выдачи следующую команду ( -p является путь к моей файле манифеста, -t является текущая цель ) :

local.properties

В случае Gradle сборки:

android project update -p . -t android-19