4

Я использую библиотеку Google Download для загрузки пакета обновления, распространяемого через менеджера Android SDK. Строительство с использованием Eclipse/Ant с тех пор еще не перенесено в AS/Gradle - но любое решение поможет.Компиляция Google Download Library, ориентированная на API 23 Android Marshmallow

В API 23 Apache HTTP уходит. И я уже реализовал обходное решение, чтобы получить LVL для компиляции. (Lvl library and android marshmallow)

Но библиотека загрузки - это значительно более крупный зверь, и я не уверен, что действительно хочу исправить код Google - возможно, просто напишите свой собственный, если это необходимо.

Кто-нибудь знает о удобной заменяющей библиотеке «drop in» (-ish) или подходящем обходном пути?

~~

Ошибки компиляции для импорта в недоступных

импорта org.apache.http.Header 'com.google.android.vending.expansion.downloader.impl.AndroidHttpClient'; import org.apache.http.HttpEntity; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpException; import org.apache.http.HttpHost; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; импорт org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.params.HttpClientParams; import org.apache.http.client.protocol.ClientContext; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.scheme.SocketFactory; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.AbstractHttpEntity; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.RequestWrapper; import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; импорт org.apache.http.params.BasicHttpParams; импорт org.apache.http.params.HttpConnectionParams; импорт org.apache.http.params.HttpParams; импорт org.apache.http.params.HttpProtocolParams; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.BasicHttpProcessor; import org.apache.http.protocol.HttpContext;

+0

привет, вы это разрешили? это действительно разочаровывает, что задача почти завершена и застряла в этот момент, что мы не можем использовать свою собственную библиотеку, потому что они сделали ее устаревшей с запуском android 6, ничего себе! –

+0

Честно говоря, я разочаровался в ряде проблем с перенаправлением API от 22 до 23 - это дело apache, лимит метода dex, изменения разрешений и т. Д. Таким образом, я приостановил действие, и я просто оставил свое приложение в API 22. (И впоследствии вместо этого начал новый, с нуля, проект Android Studio/gradle (fwiw, мои проекты IOS намного легче переносить, но, увы, это сравнение яблок с фруктами не-яблоко) – DevByStarlight

ответ

3
Хорошо, немного github ищет и нашел решение. По иронии судьбы, он упоминается также в stackoverflow - я просто не использовал правильные ключевые слова в своем поиске, я полагаю. Итак, если вы приехали сюда, то подпрыгните на вопрос/ответ/решение SMarek и дайте +1 ответ. Решение: (http://stackoverflow.com/q/32178854/735533) Библиотека: (https: // github.ком/smarek/HttpClient-андроида)

Edit:

Примечание: По состоянию на 26 октября 2015 года библиотека SMarek в выше, не вполне успешно построены как есть

В то же время, оказывается, есть «более легкое» решение для удаления для пользователей Ant вместо опции «usesLibrary org.apache.http.legacy» для пользователей градиентов.

  • Copy SDK/platforms/android-23/optional/org.apache.http.legacy.jar в папку ./libs приложения
  • (и добавить банку построить путь, путь к классам и т.д.)
  • Затем добавьте следующие строки в Proguard

    -keep class org.apache.http.** { *; }
    -dontwarn org.apache.http.**
    -dontwarn android.net.**

ПРИМЕЧАНИЕ: «dontwarn» android.net будет маскировать вызовы OpenSSL («android.net.http.SslCertificate»). В моем случае это возникает из WebKit, который я не использую (хотя могут быть сторонние библиотеки)

К сожалению, это подтолкнуло мое приложение к пределу 65k. Ни минуты покоя.

+0

«Никогда скучный момент "xD (о, и спасибо за отличный ответ!) – Rick77

Смежные вопросы