android - 将 sbt-assembly 用于 Newman,StackMob 的 Http 客户端库

标签 android sbt stackmob sbt-assembly

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

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

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

最佳答案

我在 sbt-assembly 的自述文件中写了整个部分 excluding JARs and files .

当你说:

How can i add only needed dependencies to my jar library?

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

但是对于 Android 开发,由于要排除的文件太多,您需要一些自动进行分析的工具。那就是ProGuard进来。这将使生成的 jar 小得多。但这也有点像巫术,因为您可能无法确定自己是否需要某个类(class)。尝试 pfn/android-sdk-plugin如果你还没有。它缓存 ProGuard 结果并使其更快。

关于android - 将 sbt-assembly 用于 Newman,StackMob 的 Http 客户端库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658381/

相关文章:

iphone - 无法使用 stackmob 作为后端找到英里内的位置

android - 如何将 ArrayAdapter<String> 从 Activity 传递到 Fragment

java - 从 C 到 Java 的类型转换

scala - Typesafe Play WS 作为 SBT 项目中的依赖项

scala - 如何使用 sbt-native-packager 更改通用 zip 文件名

playframework-2.0 - 如何设置 Play Framework 2.0 的 javac 编译版本以防止 "Unsupported major.minor version"?

android - 如何将TextView背景颜色更改为初始值

android - 对 Android API 和兼容性感到困惑

iphone - 访问一对一关系对象时崩溃 coredata/stackmob

android - android 的通知为 Notification 类提供错误