构建Android AWS 2.1.0 SDK

时间:2014-09-17 15:23:10

标签: java android eclipse maven amazon-web-services

我们已经达到了Android上的DEX函数调用限制(使用AWS for Android时似乎是一个常见问题)所以我试图实现的一个解决办法就是在本地构建AWS SDK,并删除了我们不需要的很多内容(而且我们不需要那么多......)。

但我有两个具体问题

1)与v1.x不同,v2.x存储库中没有打包的pom.xml文件,因此我无法使用Maven

2)AWS Android SDK似乎使用了Apache httpclient和httpcore的公开发布,它提供了Android SDK中不可用的功能(我们需要支持Android-10及更高版本)

在Eclipse中构建,这会导致以下位置的错误

  • HttpClientFactory.java
    • 方法setRedirectStrategy(HttpClientFactory.LocationHeaderNotRequiredRedirectStrategy) 未定义类型SdkHttpClient
    • 构造函数Scheme(String,int,PlainSocketFactory)未定义
    • 构造函数SSLSocketFactory(SSLContext,X509HostnameVerifier)未定义
    • 构造函数Scheme(String,int,SSLSocketFactory)未定义
    • 构造函数BasicScheme(ChallengeState)未定义
    • AUTH_CACHE无法解析或不是字段
  • MetricInputStreamEntity.java
    • 构造函数InputStreamEntity(InputStream,long,ContentType)未定义

所有这些错误都是公共Apache版本中存在API的情况,而不是Apache的Android SDK版本(我认为是V4.0)。

在Android SDK上方升级httpclient和httpcore允许代码编译,但在尝试运行我们的测试应用时会产生以下错误

  

错误使用或错误使用核心类(java。*或javax。*)时   没有建立核心库。

     

这通常是由于无意中包含了一个核心库文件   您的应用程序的项目,使用IDE(如Eclipse)时。如果   你确定你不是故意定义一个核心类,那么这个   是最可能解释的是什么。

     

但是,您实际上可能正在尝试在核心中定义类   命名空间,例如,来自a的源代码   非Android虚拟机项目。这肯定不会   工作。它至少会危害您的应用与您的兼容性   该平台的未来版本。它也常常值得怀疑   合法性。

     

如果你真的打算建立一个核心库 - 这只是   适合作为创建完整虚拟机分发的一部分,   而不是编译应用程序 - 然后使用   " - 核心库"选项以禁止显示此错误消息。

     

如果你继续使用" - core-library"但实际上正在构建一个   应用程序,然后预先警告您的应用程序仍将失败   在某些时候建立或运行。请为愤怒的顾客做好准备   例如,谁发现你的申请不再运作一次   他们升级他们的操作系统。你应该为此负责   问题

     

如果您合法地使用恰好位于核心中的某些代码   包装,那么最简单的安全替代方案就是重新包装   那段代码。也就是说,将有问题的类移动到您自己的包中   命名空间。这意味着它们永远不会与核心发生冲突   系统类。 JarJar是一个可以帮助您完成这项工作的工具。   如果你发现你不能这样做,那就表明了这一点   你所走的道路最终将导致痛苦,痛苦,悲伤,   和悲伤。

很明显,谷歌强烈地告诉我,不要这样做。

那么,您打算如何构建Android v2.1.0 SDK?

由于 利

0 个答案:

没有答案