Я пытаюсь преобразовать проект IntelliJ в систему Gradle в Android Studio, но у меня возникают ошибки с Apache HttpClient? Я что-то упустил, я получаю следующие ошибки:
Error:(10, 30) error: package org.apache.http.client does not exist
Error:(11, 30) error: package org.apache.http.client does not exist
Error:(12, 37) error: package org.apache.http.client.entity does not exist
Error:(13, 38) error: package org.apache.http.client.methods does not exist
Error:(14, 38) error: package org.apache.http.client.methods does not exist
Error:(15, 38) error: package org.apache.http.client.methods does not exist
Error:(16, 35) error: package org.apache.http.impl.client does not exist
Error:(134, 33) error: cannot find symbol class HttpUriRequest
Error:(164, 39) error: cannot find symbol class HttpUriRequest
Error:(106, 17) error: cannot find symbol class HttpGet
Error:(106, 39) error: cannot find symbol class HttpGet
Error:(117, 17) error: cannot find symbol class HttpPost
Error:(117, 40) error: cannot find symbol class HttpPost
Error:(125, 43) error: cannot find symbol class UrlEncodedFormEntity
Error:(135, 9) error: cannot find symbol class HttpClient
Error:(135, 33) error: cannot find symbol class DefaultHttpClient
Error:(155, 18) error: cannot find symbol class ClientProtocolException
Error:(165, 9) error: cannot find symbol class HttpClient
Error:(165, 33) error: cannot find symbol class DefaultHttpClient
Error:(185, 18) error: cannot find symbol class ClientProtocolException
Мой файл build.gradle имеет следующие зависимости:
dependencies {
compile 'com.google.android.gms:play-services:+'
compile 'org.apache.httpcomponents:httpclient:4.2.6'
compile 'org.apache.httpcomponents:httpmime:4.2.6'
compile files('libs/core.jar')
}
Похоже, что многие люди сталкиваются с подобной проблемой, но ни у SO, ни у Google нет решения, поэтому я надеюсь, что этот вопрос поможет будущим пользователям.
если вы используете целевой SDK как 23, добавьте приведенный ниже код в ваш build.gradle
и измените свой buildscript на
для получения дополнительной информации перейдите по этой ссылке
источник
Error:(14, 23) error: package org.apache.http does not exist
У меня была эта проблема, а затем я нашел эти страницы: Здесь вы можете видеть, что библиотека apache устарела, но не удалена, поэтому она должна работать. Это не так.
См .
И здесь вы можете увидеть, как включить библиотеку apache в ваш проект.
См .
Я решил проблему, добавив следующее в мой файл build.gradle, как рекомендовано во второй ссылке.
Однако это работает, только если вы используете gradle 1.3.0-beta2 или выше, поэтому вам придется добавить это в зависимости buildscript, если вы используете более низкую версию:
Надеюсь это поможет.
источник
Добавить эту библиотеку в
build.gradle
источник
build.gradle
, а скорее в папке модуля, которую вы создаете (то есть "приложение")копия,
org.apache.http.legacy.jar
которая находится вAndroid/Sdk/platforms/android-23/optional
папке кapp/libs
а также добавил эту строку в файл app.gradle
Но если вы используете больше библиотек JAR, вы можете использовать этот способ
источник
В общем, все, что вам нужно сделать, это добавить:
К вашему
build.gradle
файлу.источник
Я столкнулся с той же проблемой. Ответ Даниэля Ньюджента немного помог (после того, как следование его совету
HttpResponse
было найдено - ноHttpClient
все еще отсутствовало).Так вот что исправило это для меня:
4.5.1.zip
из двоичного разделаhttpcore-4.4.3
иhttpclient-4.5.1.jar
вproject/libs
папкеНадеюсь, поможет.
источник
Я столкнулся с похожими проблемами, вы могли бы заставить его работать аналогичным способом.
Сначала попробуйте это с вашей текущей конфигурацией, исключите
httpclient
изhttpmime
:В моем случае я исправил это, используя следующие банки:
Затем в build.gradle, исключая
httpclient
изhttpmime
:источник
libs/core.jar
?Идеальный ответ от Jinu и Даниэль
В дополнение к этому я решил проблему с помощью этого, если ваш compileSdkVersion равен 19 (В моем случае)
иначе, если ваш compileSdkVersion равен 23, используйте
источник
Это то, что я сделал, и это работает для меня.
Шаг 1: добавьте это в build.grade (модуль: приложение)
шаг 2: синхронизировать проект и готово.
источник
Версия HTTP-клиента Apache, представленная на складе Android, была очень старой .
Хотя вы можете продолжать использовать старую устаревшую библиотеку с помощью
useLibrary 'org.apache.http.legacy'
обходного пути (предложенного @Jinu и др.), Вам действительно нужно откусить пулю и обновить что-то еще, например, родной AndroidHttpUrlConnection
или, если это не соответствует вашим потребностям, вы можете использовать библиотеку OkHttp , которая является то , чтоHttpUrlConnection
является внутренне основана на так или иначе.OkHttp на самом деле имеет уровень совместимости, который использует тот же API, что и клиент Apache, хотя они не реализуют все те же функции, поэтому пробег может отличаться.
Хотя есть возможность импортировать более новую версию клиента Apache (как предложено @MartinPfeffer), вполне вероятно, что большинство классов и методов, которые вы использовали ранее, устарели, и существует довольно большой риск того, что обновление приведет к ошибкам. в вашем коде (например, я обнаружил, что некоторые соединения, которые ранее работали из-за прокси-сервера, больше не работали), так что это не очень хорошее решение.
источник
Потратив несколько дней на эту тему, мне наконец удалось ее решить. К сожалению, нам это нужно, если мы хотим использовать файлы расширения. Решение было предоставлено несколькими людьми здесь, но для меня в ответах отсутствовали некоторые мелкие детали, которые могли бы сэкономить много времени для меня. Вот последовательность событий для новичков, как я, чтобы сэкономить ваше драгоценное время.
Сначала я импортировал папку «library» из D: \ Users \ Imre \ AppData \ Local \ Android \ sdk1 \ extras \ google \ play_licensing в проект, перейдя в меню «Файл», «Новый», «Модуль импорта» и перейдя в папку «библиотека». Если вы откроете SDK Manager и нажмете «Запустить автономный SDK Manager» в нижней части всплывающего окна, вы можете навести указатель мыши на папку «Extras» внизу, и небольшая желтая информация укажет вам, где вы найдете пакет, который вам нужно импортировать.
Как только это будет сделано, перейдите в раздел «библиотека» на левой панели с «Проектом» и откройте вкладку «Android». Откройте раздел библиотеки Java и откройте класс APKExpansionPolicy. Если у вас есть ошибки и импорт org.apache.http.NameValuePair и импорт org.apache.http.client.utils.URLEncodedUtils бледно-серый, откройте build.gradle (Project: что угодно) и убедитесь, что в «buildscript» в разделе "зависимости" у вас есть "classpath" com.android.tools.build:gradle:1.5.0 ". 1.5.0 может отличаться в вашем случае. Я думаю, это зависит от вашей версии студии. Мой 1.5.1. Если у вас новее, вам напомнят обновить номера.
После этого перейдите к «build.gradle (Module: library)» и включите «useLibrary» org.apache.http.legacy »в раздел« android ». Синхронизировать сейчас (правый верхний угол) должно быть предложено. Сделай это.
Если вы получите дальнейшие сообщения об ошибках (я не буду знать об этом, потому что я сделал это наоборот), файлы Apache могут отсутствовать в вашем проекте, так как apache больше не поддерживается. Найдите их в C / D: Users / Yourname / AppData / Local / Android / Sdk / platform / android-23 / необязательно и скопируйте / вставьте их в папку yourproject / app / libs. У вас должен быть необязательный файл .json и файл org.apache.http.legacy.jar. Возможно, вам лучше зайти на веб-сайт apache и загрузить новейшую версию: http://hc.apache.org/downloads.cgi Распакуйте его куда угодно, откройте его, перейдите в «lib», скопируйте httpclient-4.5.1 Файл .jar и замените им файл org.apache.http.legacy.jar.
Синхронизируйте и пересоберите / очистите ваш проект, и все должно быть хорошо.
На всякий случай откройте свой терминал (в нижней части Android Studio) и введите «gradlew clean». Будет установлено несколько вещей. Как только это будет сделано, введите "gradlew сборки". Это займет несколько минут, но это даст вам ошибки, если они у вас есть, конечно. Если вы не можете ничего ввести в Терминале, запустите командную строку (кнопка Windows + R), введите cmd, нажмите OK, щелкните правой кнопкой мыши заголовок небольшого черного всплывающего экрана (C: \ WINDOWS \ system32 \ cmd.exe) , Свойства, Параметры, в нижней части окна проверьте, что «Использовать устаревшую консоль» имеет толщину. Перезапустите A.Studio.
Удачи!
источник
Мне пришлось опубликовать, так как ни один из вышеперечисленных ответов не работал полностью для меня.
Я использую Android Studio
Шаг 1. Загрузите последний файл jar ( http://www-eu.apache.org/dist//httpcomponents/httpclient/binary/httpcomponents-client-4.5.2-bin.zip ).
Шаг 2: Скопируйте и вставьте файл .jar в папку libs (создайте, если она еще не существует) в вашем модуле (может быть приложением или библиотекой)
Шаг 3: Щелкните правой кнопкой мыши по банке и «Добавить как библиотеку». Он автоматически добавит JAR-файл в качестве зависимости в файл Gradle вашего модуля
Шаг 4: Теперь автоматически ваша проблема будет решена, но в случае, если вы используете Proguard в своем приложении, он выдаст вам предупреждение о дублировании файлов классов и не позволит вам собрать. Это известная ошибка, и вам необходимо добавить следующие правила в ваши proguard-правила
Удачи!
источник
В моем случае я обновил одну из моих библиотек в своем проекте Android.
Я использую Reservoir в качестве решения для хранения кеша: https://github.com/anupcowkur/Reservoir
Я пошел из:
Для того, чтобы:
Автор библиотеки, должно быть, удалил библиотеку commons-io из репозитория, чтобы мое приложение больше не работало.
Мне пришлось вручную включить commons-io, добавив это на gradle:
https://mvnrepository.com/artifact/commons-io/commons-io/2.5
источник
Я клонировал следующее: https://github.com/google/play-licensing
Затем я импортировал это в свой проект.
источник