编译Google下载库针对API 23 Android Marshmallow



我使用Google的下载库下载扩展包,通过'Android SDK'管理器分发。使用Eclipse/Ant构建,因为还没有迁移到AS/Gradle,但任何解决方案都会有所帮助。

在API 23 Apache HTTP消失了。我已经实现了一个变通办法,让谷歌的LVL编译。(关卡库和android棉花糖)

但是下载库是一个更大的野兽,我不确定我是否真的想修复谷歌的代码-可能只是写我自己的代替,如果必要的话。

有人知道一个方便的"插入"(-ish)替代库或合适的解决方案吗?

~ ~

在'com.google.android.vending.expansion.downloader.impl.AndroidHttpClient'中编译不可用导入的错误

进口org.apache.http.Header;进口org.apache.http.HttpEntity;进口org.apache.http.HttpEntityEnclosingRequest;进口org.apache.http.HttpException;进口org.apache.http.HttpHost;进口org.apache.http.HttpRequest;进口org.apache.http.HttpRequestInterceptor;进口org.apache.http.HttpResponse;进口org.apache.http.client.ClientProtocolException;进口org.apache.http.client.HttpClient;进口org.apache.http.client.ResponseHandler;进口org.apache.http.client.methods.HttpUriRequest;进口org.apache.http.client.params.HttpClientParams;进口org.apache.http.client.protocol.ClientContext;进口org.apache.http.conn.ClientConnectionManager;进口org.apache.http.conn.scheme.PlainSocketFactory;进口org.apache.http.conn.scheme.Scheme;进口org.apache.http.conn.scheme.SchemeRegistry;进口org.apache.http.conn.scheme.SocketFactory;进口org.apache.http.conn.ssl.SSLSocketFactory;进口org.apache.http.entity.AbstractHttpEntity;进口org.apache.http.entity.ByteArrayEntity;进口org.apache.http.impl.client.DefaultHttpClient;进口org.apache.http.impl.client.RequestWrapper;进口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;进口org.apache.http.protocol.BasicHttpContext;进口org.apache.http.protocol.BasicHttpProcessor;进口org.apache.http.protocol.HttpContext;

好的,在github上搜索了一下,找到了一个解决方案。具有讽刺意味的是,它在stackoverflow中也提到了——我只是没有在我的搜索中使用正确的关键字。所以,如果你碰巧到达这里,然后跳到斯马雷克的问题/答案/解决方案,并给出+1答案。解决方案:(http://stackoverflow.com/q/32178854/735533)库(https://github.com/smarek/httpclient-android):编辑:

注意:截至2015年10月26日,SMarek的上述库并没有完全成功构建

同时,事实证明,对于Ant用户来说,有一个"更容易"的插入式解决方案来代替"usesLibrary org.apache.http"。gradle用户的Legacy "选项。

  • 复制SDK/platforms/android-23/optional/org.apache.http.legacy.jar到应用程序的。/libs目录
  • (并添加jar来构建路径类路径等)
  • 然后添加以下内容到proguard

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

注意:android.net 'dontwarn'将屏蔽OpenSSL调用("android.net.http.SslCertificate")。在我的情况下,它源于我不使用的WebKit(尽管第三方库可能)

不幸的是,它使我的应用程序超过了6.5 k的限制。从来没有沉闷的时刻。

最新更新