Gradle терпит неудачу с «Перегрузкой неоднозначных методов для метода java.io.File # <init>"

Когда gradle build мой проект, я получаю эту ошибку:

FAILURE: Сбой сборки с исключением.

proguardFile строка является первым правилом 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.

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

Solutions Collecting From Web of "Gradle терпит неудачу с «Перегрузкой неоднозначных методов для метода java.io.File # <init>""

Сообщение об ошибке было изменено в сентябре 2014 года. Теперь ясно и четко указано, что проблема в том, что Gradle не может найти SDK; Остальная часть ответа по-прежнему применяется к старым версиям (<0,13) плагина Gradle.


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

На самом деле, это то, что Грэдл скажет вам, если вы временно прокомментируете эту строку:

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

Вы можете это исправить:

  • Определив местоположение SDK в local.properties : просто добавьте sdk.dir=/path/to/sdk в этот файл.

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

    Пример: ANDROID_HOME=/path/to/sdk gradle build .

При использовании системы управления версиями вполне нормально устанавливать локацию локально в своих собственных local.properties , поскольку ручная настройка переменной среды каждый раз, когда вам нужно использовать Gradle, будет раздражать. Просто не проверяйте его в своем репозитории.

Я делаю это каждый день, создавая 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 

В моем случае мне пришлось установить местоположение Android NDK и SDK в настройках модуля моего проекта Android Studio.