3

私はEclipseを使用して、65kを超えるメソッド数を持つ大規模なプロジェクトをコンパイルしています。公式ドキュメントで指定されているように、proguard を使用してメソッド数を減らしています: https://developer.android.com/tools/building/multidex.html

ProGuard を使用して未使用のコードを削除する - アプリの ProGuard 設定を構成して ProGuard を実行し、リリース ビルドに対して圧縮が有効になっていることを確認します。圧縮を有効にすると、未使用のコードを APK と一緒に出荷しないようにすることができます。

リリース キーでアプリに署名すると、メソッド数が 43K に減るため、問題なく動作します。

問題は、PLAYボタンでアプリを起動しようとすると(リリースモードで署名せずにdebug.keystoreを使用することを意味します)、Eclipseはproguardを使用しておらず、アプリのテストを終了せずにこのエラーが表示されることです:

Dex Loader Unable to execute dex: method ID not in [0, 0xffff]: 65536

この巨大なプロジェクトで Android Studio に移行する準備が整うまで、あと数か月は Eclipse を使用する必要があります。そのため、debug mude で起動するときにメソッド数を減らす必要があるため、デバッグ モードで proguard 起動を適用する必要があります。日食。¿どうしてドンデになれるの?

ありがとう

4

1 に答える 1

0

Eclipse IDE を使用している場合、デバッグ モードで Proguard を有効にすることはできませんが、Android Studio を使用できる場合は、これを実現できます。訪問 -デバッグモードでプロガードを使用することは可能ですか?

ただのワイルドなアイデア:

1.リリースモードでアプリケーションでproguardを実行すると、Proguardフォルダー内にusage.txtが取得されます。

2..apk からストライプ化されたすべてのコードを含む使用法 txt を開きます。このコードは、必要がないため、.apk からストライプ化されました。したがって、それらの方法を観察してください。3.これで、これらのメソッドをコードから手動で削除できるようになり、メソッド数の最大数を解決できる可能性があります。

于 2015-10-29T04:50:45.020 に答える