Подтвердить что ты не робот

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.

4b9b3361

Ответ 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", чтобы произошли связанные классы или исключение.