問題タブ [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.

0 投票する
0 に答える
282 参照

android - dex ファイルが多すぎます

大きなマルチモジュール プロジェクトをビルドすると、結果の apk に多数の dex ファイルが含まれます。デバッグ バージョンでは 35、リリースでは 15。ほとんどのファイルには、65k よりもはるかに少ないメソッドと参照があります。

dex ファイルを圧縮する方法はありますか?

また、Google、Instagram などのいくつかの有名なアプリケーションも分析しました。それらはすべて、ほぼ完全なデックスを4〜6個持っています。私たちのようなものは何もありません。圧縮が可能のようです

また、このような大量の dex ファイルによって、アプリケーションの起動が遅くなる可能性があるとも考えられます。そうですか?

Android 4 デバイスでアプリケーションを実行すると、文字通りログで dex ファイルがどのように解凍されるかを確認できます。私はそれをプロファイリングしませんでしたが、速度はすべてのファイルでほぼ同じであるように見えます。ここで間違っている可能性があります。

AGP 3.4、グラドル 5.5

デバッグ バージョン: ここに画像の説明を入力

リリース バージョンの dex メトリック: ここに画像の説明を入力

0 投票する
1 に答える
120 参照

android - Bazelプロジェクトでd8のコマンドラインフラグをどのように設定しますか?

たとえば--min-api、26 に設定したい場合: https://r8.googlesource.com/r8/+/b9cb6ae34047f19320885d9e2c594f81364fa896/src/main/java/com/android/tools/r8/D8CommandParser.java#120

.bazelrcBazel のフラグをオンにしてさまざまな組み合わせを試し-s、サブコマンドがそのフラグで呼び出されるのを確認しましたが、希望どおりに何も追加されていません。

  • build:d8 --define=min-api=26
  • build:d8 --min-api=26
  • build:d8 --min-api 26

理想的には、これは BUILD ファイルのどこかに設定されるため、ターゲットごとに構成できます。

0 投票する
1 に答える
765 参照

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 ファイルを正しく動作させる方法を教えてください。