問題タブ [android-d8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - dex ファイルが多すぎます
大きなマルチモジュール プロジェクトをビルドすると、結果の apk に多数の dex ファイルが含まれます。デバッグ バージョンでは 35、リリースでは 15。ほとんどのファイルには、65k よりもはるかに少ないメソッドと参照があります。
dex ファイルを圧縮する方法はありますか?
また、Google、Instagram などのいくつかの有名なアプリケーションも分析しました。それらはすべて、ほぼ完全なデックスを4〜6個持っています。私たちのようなものは何もありません。圧縮が可能のようです
また、このような大量の dex ファイルによって、アプリケーションの起動が遅くなる可能性があるとも考えられます。そうですか?
Android 4 デバイスでアプリケーションを実行すると、文字通りログで dex ファイルがどのように解凍されるかを確認できます。私はそれをプロファイリングしませんでしたが、速度はすべてのファイルでほぼ同じであるように見えます。ここで間違っている可能性があります。
AGP 3.4、グラドル 5.5
android - Bazelプロジェクトでd8のコマンドラインフラグをどのように設定しますか?
たとえば--min-api
、26 に設定したい場合: https://r8.googlesource.com/r8/+/b9cb6ae34047f19320885d9e2c594f81364fa896/src/main/java/com/android/tools/r8/D8CommandParser.java#120
.bazelrc
Bazel のフラグをオンにしてさまざまな組み合わせを試し-s
、サブコマンドがそのフラグで呼び出されるのを確認しましたが、希望どおりに何も追加されていません。
build:d8 --define=min-api=26
build:d8 --min-api=26
build:d8 --min-api 26
理想的には、これは BUILD ファイルのどこかに設定されるため、ターゲットごとに構成できます。
android - Android 用の dx または d8 ツールの実行中にエラーが発生しました
コマンドラインから手動で Android アプリをビルドしようとしています。
しかし、Android SDK の build-tools ディレクトリ内にある dx.bat コマンドを実行すると、常にエラーが発生します。どのオプションを指定しても、常に同じエラーが発生します。実行中dx --help
に、次のエラーが発生しました。
-Djava.ext.dirs=E:\.android\SDK\build-tools\29.0.2\lib is not supported. Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Android Studio を使用していたときは、このような問題は発生しませんでした。私がやっている間違いと、dx.bat ファイルを正しく動作させる方法を教えてください。