1

このスレッドによると、Buck は現時点でマルチデクシングを完全にはサポートしていません。

私が混乱していること: Exopackageの方法だけを使用すれば、この問題は解決しますか? Gradle (遅い) を使用してリリース ビルドを作成し、Buck の Exopackage ソリューションを使用して日々の開発を行うことは、まだ問題ありません。

Exopackge は、セカンダリ dex のロード コードを含む単一のメイン シェル .dex になることがわかりました。しかし、Exopackage ビルドは複数のセカンダリ .dex ファイルを生成するのでしょうか、それとも 1 つだけを生成するのでしょうか (65k メソッド数の制限に再び達します)。

4

1 に答える 1

2

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 のセットアップに関するチュートリアルがあります。

降圧チュートリアル

PS最高の速度を得るには、ウォッチマンを必ずインストールしてください

于 2015-11-25T20:18:57.980 に答える