問題タブ [dynamic-feature]

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 投票する
1 に答える
901 参照

android-espresso - 動的機能モジュールでの UI Espresso テスト

Firebase テスト ラボは App Bundle / APK と Android テスト APK を受け入れ、動的機能モジュールを使用した UI テストは Firebase テスト ラボで失敗します。エラーは、機能モジュールがベース apk に見つからないことを示すマルチ dex の問題に関するもので、動的機能モジュールを処理しない場合に意味があります。誰かが同じ問題に遭遇したのか、それとも firebase テスト ラボ チームの誰かがこれを手伝ってくれるのか疑問に思っています。

そのため、問題は動的機能モジュールの Espresso UI テストを実行していることです。Android スタジオはそれらの実行に失敗しますが、最新の gradle プラグインはそれを適切に処理します。基本的に、最初にベース モジュールをインストールしてから、機能テスト apk をインストールしようとすると、すべてが正常に機能します。(特定のメソッドのテストの実行に問題がありますが、これは私の質問には当てはまりません)。動作するコマンド ラインは、有名な connectedAndroidTest コマンドです。問題は、Firebase テスト ラボでそれらを実行することです。

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

android - 動的機能が外部 aar 依存関係を使用している場合の「Program type already present」エラーを修正する方法

サイズを考慮して、別の動的機能 (モジュール) に分割することにしたサードパーティの aar ファイルがあります。メインアプリと動的モジュールの両方com.google.code.gson:gson が、依存関係を削除した同じモジュールにあったときに使用されてgsonいますが、現在、メインモジュールがそれを必要としています。

プロジェクトのビルドは問題ありませんが、バンドルをビルドしようとすると、

「プログラムの種類は既に存在します: com.google.gson.FieldNamingPolicy$5」エラー

モジュールの gradle から gson を除外しようとしました。依存関係と Android セクションの両方で、うまくいきませんでした。これはサードパーティの aar であるため、そのコードや依存関係にはアクセスできません。

メインアプリグラドル:

動的機能グラドル:

エラー:

org.gradle.execution.MultipleBuildFailures: ビルドが 1 回失敗して完了しました。... 原因: java.lang.RuntimeException: com.android.build.api.transform.TransformException: メイン dex リストの生成中にエラーが発生しました: dex アーカイブのマージ中にエラーが発生しました: プログラムの種類が既に存在しています: com.google.gson.FieldNamingPolicy $5