【问题标题】:Proguard setting in eclipseeclipse中的Proguard设置
【发布时间】:2015-03-12 11:19:33
【问题描述】:

有什么区别

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt

和

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

当我使用第一个时,它会因 facebook 登录而崩溃,但当我使用第二个时,它不会崩溃(在发布版本中)。

但大小会在第二秒内从 4 MB 增加到 5 MB。 我正在使用 API 21。 Facebook sdk 3.0

【问题讨论】:

    标签: android eclipse proguard facebook-sdk-3.0


    【解决方案1】:

    没有看到 proguard 文件的内容,我只能猜测,但我认为可以公平地假设 proguard-project.txt 包含保留与 Facebook SDK 相关的类名/方法/成员/等的定义。

    它在第一个设置中崩溃的原因是因为它不包含您项目的 proguard 设置,这意味着它比第二个设置(包括 Facebook SDK)缩小了更多。然后,在发布时,Facebook SDK 可能正在通过反射或类似的方式加载类/调用方法,并且由于找不到已缩小的方法/类名而崩溃。

    这也是为什么第二个设置会导致更大的二进制文件 - 缩小意味着更小的二进制文件,因为每个类都从“SomeLongClassName”减少到“a”。缩小得越多,生成的二进制文件就越小(效率更高)。

    缩小是一种优化,不应该 (IMO) 比代码一致性和架构具有更高的优先级。如果您需要从缩小中排除几个项目(您的 ProGuard 可能使用 Facebook SDK 执行此操作),那么您应该这样做,而且您不必担心生成的 APK 大小。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 2013-05-19
      相关资源
      最近更新 更多