私のチームと私は、別のチームから大規模な Android プロジェクトを継承しました。含まれているすべてのライブラリを含むアプリケーション全体には、約 35000 のメソッドがあると報告されています。これで、プロトコル バッファを使用する必要があるアプリに新しいサービスを実装するタスクができました。
問題は、必要なすべての .proto ファイルを含む生成された .jar ファイルが、別の 35000 メソッド、つまり 70000 メソッドを作成することです。ご存じないかもしれませんが、Android コンパイラには .dex ファイルごとに 65536 メソッドという制限があります。明らかにその制限を超えており、アプリをコンパイルしようとすると次のエラーが発生します。
Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
はい、おそらくアプリケーション アーキテクチャを再構築する必要がありますが、それには時間がかかります。そして今のところ、この問題を一時的に回避する解決策を見つけようとしています。
助言がありますか?