Androidが提供する動的機能配信を確認するためのサンプルを1つ作成しています。私は次のようにプロジェクト構造を持っています。ベース プロジェクトアプリと 1 つの動的機能sample_dynamic_feature。動的な機能配信に必要なすべての設定が整っています。問題は、基本モジュールと動的モジュールに同じ名前のレイアウト ファイルまたは .xml ファイルを追加すると発生します。基本アプリケーションと動的モジュールの両方にactivity_main.xmlを追加しました。次のエラーが発生しました:
何が悪かったのか:
Execution failed for task ':app:packageReleaseBundle'.
> java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.ValidationException: com.android.tools.build.bundletool.exceptions.ValidationException: Modules 'base' and 'sample_dynamic_feature' contain entry 'res/layout/activity_main.xml' with different content.
正常に動作します:
Above setup works fine in debug mode.
./gradlew assembleDebug
./gradlew assembleRelease
失敗:
In case of release mode it gives me above error.
./gradlew bundleDebug
./gradlew bundleRelease
完全なスタック トレース:
例外: org.gradle.api.tasks.TaskExecutionException: タスク ':app:packageReleaseBundle' の実行に失敗しました。org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110) で org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77) で org.gradle .api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59) org.gradle.api.internal .tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java: org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java で) :55) 原因: org.gradle.internal.UncheckedException: java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.ValidationException: モジュール「base」と「sample_dynamic_feature」にエントリ「res/layout」が含まれています/activity_main.xml' を別のコンテンツに変更します。org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63) で org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java: ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 31 以上 原因: java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.ValidationException: モジュール 'base' および 'sample_dynamic_feature' にエントリが含まれています内容が異なる「res/layout/activity_main.xml」。com.android.ide.common.workers.ExecutorServiceAdapter.close(ExecutorServiceAdapter.kt:56) で kotlin.io.CloseableKt.closeFinally(Closeable.kt:53) で com.android.build.gradle.internal.tasks.PackageBundleTask org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) の .bundleModules(PackageBundleTask.kt:121) ... 44 以上 原因: com.android.tools.build.bundletool。exceptions.ValidationException: モジュール 'base' および 'sample_dynamic_feature' には、内容が異なるエントリ 'res/layout/activity_main.xml' が含まれています。com.android.tools.build.bundletool.exceptions.ValidationException$Builder.build(ValidationException.java:49) で com.android.tools.build.bundletool.exceptions.ValidationException$Builder.build(ValidationException.java:41) でcom.android.tools.build.bundletool.validation.EntryClashValidator.checkEqualEntries(EntryClashValidator.java:66) で com.android.tools.build.bundletool.validation.EntryClashValidator.validateAllModules(EntryClashValidator.java:52) で com.android .tools.build.bundletool.validation.ValidatorRunner.validateBundleModulesUsingSubValidator(ValidatorRunner.java:
このバンドルの違いは何ですか?