1

我需要在我的 Android 项目中使用StackMob 的 Http Client 库 Newman 。

sbt-assembly用来生成一个包含所有依赖项的单个(uber)jar。该命令给了我一个非常大的 jar 文件(48mb),Android 无法将其转换为 dex。

如何将只需要的依赖项添加到我的 jar 库中?

4

1 回答 1

1

我在 sbt-assembly 的 README 中编写了关于排除 JAR 和文件的整个部分。

当你说:

如何将只需要的依赖项添加到我的 jar 库中?

上下文中的“依赖项”一词sbt-assembly通常表示依赖的罐子。问题在于 jar 级别,您需要所有这些。您要做的是找出*.class未使用的文件并将其排除在最终的 fat jar 之外。sbt-assembly确实有合并策略,您可以使用它来忽略文件。

然而,对于 Android 开发,由于要排除的文件太多,您需要一些能够自动进行分析的东西。这就是ProGuard的用武之地。这将使生成的 jar 更小。但这也有点像巫术,因为您可能无法确定是否需要某些课程。如果您还没有,请尝试pfn/android-sdk-plugin 。它缓存 ProGuard 结果并使其更快。

于 2013-12-18T15:57:33.783 回答