我们已经达到了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中构建,这会导致以下位置的错误
所有这些错误都是公共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?
由于 利