根据this thread的说法,Buck目前还没有完整的多重处理支持-至少在从“官方”解决方案如何解决多重处理的意义上说不。

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

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

最佳答案

Buck确实支持您使用Exopackage设置的multi-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的教程:

Buck Tutorial

附言确保以最佳速度安装watchman

08-04 07:33