我使用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;
注意:截至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的限制。从来没有沉闷的时刻。