Gradle не удалось синхронизировать с 'неспособным найти дополнительную библиотеку'
Мне пришлось переустановить мою систему, и сегодня я получаю эту ошибку в Android Studio при попытке синхронизации с gradle:
Warning: Unable to find optional library: org.apache.http.legacy
Мой проект gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
allprojects {
repositories {
mavenCentral()
}
}
И мой модуль gradle:
apply plugin: 'android'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
}
buildTypes {
release {
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
}
Из документов google:
Чтобы продолжить использование API Apache HTTP, вы должны сначала объявить после зависимости от времени компиляции в файле build.gradle:
android {
useLibrary 'org.apache.http.legacy'
}
Я пробовал упоминать предложения в этой теме, но они не работают. Тот же результат с предварительным просмотром андроид-студии 1.5 и 2.
Как я могу это исправить?
Изменить: все, что я пробовал до сих пор:
-
Измените gradle версии classpath на 1.3.0, 1.3.1, 1.5.0.
-
Измените compileSdkVersion
и targetSdkVersion
на 22. Также buildToolsVersion от 23.0.1, 23.0.0, 22.0.1.
Ответы
Ответ 1
Верхний уровень build.gradle -/build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
}
}
Модуль специфический build.gradle -/app/build.gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
useLibrary 'org.apache.http.legacy'
...
}
Добавьте org.apache.http.legacy.jar, который находится в папке Android/Sdk/platform/android-23/optional в каталоге app/libs и синхронизируйте ваши проект
Ответ 2
В моем случае это не сработало, потому что я отсутствовал optional.json
в <sdk-path>\platforms\android-23\optional\
, каталог со следующим содержимым:
[
{
"name": "org.apache.http.legacy",
"jar": "org.apache.http.legacy.jar",
"manifest": false
}
]
Создание нового файла JSON с указанным выше содержимым решило проблему для меня.
Ответ 3
После много работы эти решения работают для меня
,
** Studio\Android\sdk\platform ** здесь удалите ваш android-23 и обновите обновление api 23 от sdk manager. **
,
он решит вашу проблему.
Ответ 4
Обновите файл проекта gradle, чтобы использовать gradle версию 1.3.1.
classpath 'com.android.tools.build:gradle:1.3.1'
Также попробуйте добавить репозиторий codehause.
repositories {
mavenCentral()
maven{
url 'http://repository.codehaus.org'
}
}
Ответ 5
В моем случае проблема действительно возникала, потому что у меня не было правильного SDK, установленного на этом компьютере. Переход на .../Android/Sdk/platforms/android-23
Я видел, что папка пуста. Добавление SDK 23 с помощью менеджера SDK устранило проблему и разрешило мне скомпилировать.
Необходимо проверить, что у вас установлена одна и та же версия SDK, указанная в compileSdkVersion
в файле build.gradle.
Ответ 6
Чтобы сэкономить время, 2 решения являются лучшими и работают для меня.
Решение 1:
откройте менеджер Android sdk и переустановите API 23 (удалите и установите снова).
Решение 2:
Загрузите этот файл, содержащий файл optional.json
извлекать и перемещать optional.json в:
C:\Users\\AppData\Local\Android\SDK\платформа\андроид-23\опция
Ответ 7
Вам нужно добавить файл org.apache.http.legacy.jar
jar в папку проекта app/libs для Android Stuido.
Jar Location - `<SDK LOCATION>\android-sdk\platforms\android-23\optional`
Чтобы сделать это, просто щелкните правой кнопкой мыши на своем проекте и выберите Show in Explorer
, затем перейдите к ...\app\libs
и вставьте над файлом jar и Синхронизируйте проект с помощью Gradle Файл
Module:app
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "<ur_app_id>"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Ответ 8
Если выше решение не работает, попробуйте этот способ
Недавно я столкнулся с этой проблемой, и это вызвано ограничением длины пути. Я думаю, что максимум 256 символов.
Переместите свой проект, и сборка будет успешной.
Ответ 9
- Скопируйте " sdk\platform\android-23\optional\org.apache.http.legacy.jar" в каталог ваших модулей приложений, затем добавьте в качестве библиотеки;
- Если вы включите proguard, отредактируйте " proguard-rules.pro", чтобы произошли связанные классы или исключение.