java - Buck exopackage 多 dex 支持?

标签 java android android-multidex buck

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

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

我知道 Exopackge 将生成一个主 shell .dex,其中包含辅助 dexe 的加载代码。但是 Exopackage 构建会生成多个辅助 .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为了最好的速度

关于java - Buck exopackage 多 dex 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910859/

相关文章:

java - 向 Java Swing 应用程序添加 self 更新功能的最佳方法是什么?

android - android.support.design.widget.TabLayout 的自定义字体

android - 如何使用新的 Android Multidex 支持库启用多索引

android - React native fbsdk : Could not invoke FBGraphRequest. 在 android 上启用 multidex React native app 时启动

java - 在 Cron4J 中应用序列

java - 为什么我不能在面板上绘画

java - 在 Eclipse 上,为 Android 开发,我在哪里可以看到 System.out.println() 的输出?

android - 仅按时加载 fragment 数据

android - 获取通过 ADB 连接的设备的 Android 操作系统版本

android - Joda Time 的 Multidex 重复条目