問題タブ [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.
android-espresso - 動的機能モジュールでの UI Espresso テスト
Firebase テスト ラボは App Bundle / APK と Android テスト APK を受け入れ、動的機能モジュールを使用した UI テストは Firebase テスト ラボで失敗します。エラーは、機能モジュールがベース apk に見つからないことを示すマルチ dex の問題に関するもので、動的機能モジュールを処理しない場合に意味があります。誰かが同じ問題に遭遇したのか、それとも firebase テスト ラボ チームの誰かがこれを手伝ってくれるのか疑問に思っています。
そのため、問題は動的機能モジュールの Espresso UI テストを実行していることです。Android スタジオはそれらの実行に失敗しますが、最新の gradle プラグインはそれを適切に処理します。基本的に、最初にベース モジュールをインストールしてから、機能テスト apk をインストールしようとすると、すべてが正常に機能します。(特定のメソッドのテストの実行に問題がありますが、これは私の質問には当てはまりません)。動作するコマンド ラインは、有名な connectedAndroidTest コマンドです。問題は、Firebase テスト ラボでそれらを実行することです。
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