android - android 的 scala 应用程序如何减小文件大小?

标签 android eclipse scala proguard

我正在尝试在 Eclipse 中使用 Scala 编写 Android 应用程序。我遇到的问题是部署的 APK 文件太大了——因为你不能将 Android 应用程序链接到外部库,任何使用的代码都必须复制到 APK 文件中,但大多数 Scala 应用程序不需要大多数 Scala 库。我在某处读到,即使是大型应用程序也只能使用 50kb 左右的 Scala 库进行打包,而我的 Android 设备告诉我,我的测试应用程序占用了 4mb。

我已经尝试过 Eclipse 的 Treeshaker 插件,我可以在进度窗口中看到它正在运行,但它似乎什么也没做。将它从我的项目中分离出来对最终文件大小没有影响。我也尝试过自己配置 Proguard,但我找不到既不会影响文件大小的配置(我意识到 Proguard 仅在使用 Eclipse 的导出向导时运行,我曾对此进行过测试)或崩溃带有神秘的错误消息,例如“1”。 (嗯,好吧,整个错误信息是“Conversion to Dalvik format failed with error code 1”,这几乎没什么帮助,因为我找不到任何关于该错误信息的清晰文档,而且它没有告诉我是哪一部分我的代码或配置导致了问题...)

所以。关于如何使它正常工作的任何见解?

最佳答案

大多数人将 SBT 与 ProGuard 一起使用(据我所知,它是通过 sbt android plugin 自动运行的)。

此外,还有可能 ship with two dex files in a apk .这也解决了很多问题,因为大多数限制适用于 dex 文件,而不是最终的 apk。

这是较旧的,但有许多有用的一般信息:http://lamp.epfl.ch/~michelou/android/

关于android - android 的 scala 应用程序如何减小文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733481/

相关文章:

c++ - 索引 4 处路径中的非法字符 - Eclipse C++

java - FoundationDB 中的 getKey 返回意外结果

scala - 为什么 scala REPL 和 Ammonite 在这一点上表现不同,哪种行为是正确的?

java - 将视频文件保存在 Assets 文件夹中?

java - 如何从 EclEmma 的覆盖率计算中排除类,而不实际将它们从覆盖率本身中排除

java - Eclipse - 强制刷新 ID

android - jtwitter 不发布到 twitter,应用程序崩溃

scala - A类具有一个类型参数,而B类型具有一个类型参数

java - 错误的资源值 Android?

java - 从数组加载 map (游戏)时出现问题