1

根据这个线程,Buck 目前没有完整的多 dexing 支持——至少在多 dexing 是如何通过“官方”解决方案解决的意义上没有。

我感到困惑的是:如果我只采用Exopackage方式,这个问题是否解决了?我仍然可以使用 Gradle 生成发布版本(慢),并使用 Buck 的 Exopackage 解决方案进行日常开发。

我知道 Exopackge 将生成一个主 shell .dex,其中包含辅助 dex 的加载代码。但是 Exopackage 构建会生成多个辅助 .dex 文件,还是只生成一个(这将再次达到 65k 方法计数限制)?

4

1 回答 1

2

Buck 确实支持您使用 Exopackage 设置的多 dex(我想您可以调用 Exopackage 和对 buck 的扩展)。这可以让您超过 65k 限制。我的项目有超过 65k,它与 Buck + Exopackage 配合得很好。

这是我使用 Exopackage 时的二进制参数

ANDROID_BINARY_PARAMS = {
  'name' : 'pumpup',
  'linear_alloc_hard_limit' : 16 * 1024 * 1024,
  'use_linear_alloc_split_dex' : True,
  'manifest' : 'AndroidManifest.xml',
  'keystore' : ':debug_keystore',
  'use_split_dex' : True,
  'exopackage_modes' : ['secondary_dex'],
  'primary_dex_patterns' : [ 
    '^co/pumpup/app/AppShell^',
    '^co/pumpup/app/BuildConfig^',
    '^com/facebook/buck/android/support/exopackage/',
  ],
  'deps': [
    ':main-lib',
    ':application-lib',
  ],
}

注意use_split_dex = True?

所以你会没事的!

我有一个关于在这里设置 Buck 的教程:

降压教程

PS确保您安装守望者以获得最佳速度

于 2015-11-25T20:18:57.980 回答