IllegalStateException: Ожидаемая конфигурация ':module:debugFeatureCompileClasspath' должна содержать ровно один файл, однако она содержит 2 файла
Я работаю с многофункциональным Android-приложением с мгновенным приложением и приложением износа. Здесь я могу успешно запустить свое приложение, но получаю следующую ошибку при сборке APK или перестройке проектов.
java.lang.IllegalStateException: Expected configuration ':module1:debugFeatureCompileClasspath' to contain exactly one file, however, it contains 2 files.
at org.gradle.api.internal.file.AbstractFileCollection.getSingleFile(AbstractFileCollection.java:62)
at com.android.build.gradle.tasks.MergeManifests.doFullTaskAction(MergeManifests.java:116)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
В моем проекте 3-4 модуля и один базовый модуль проектов. Я уже интегрировал все настройки для многофункционального мгновенного приложения в соответствии с примером, предоставленным Google. https://github.com/googlesamples/android-instant-apps/tree/master/multi-feature-module
У меня есть один модуль (apimodule), где я добавил все библиотеки и API-зависимости. Ниже приведена структура зависимостей моего проекта.
- AppModule
Добавлен весь модуль в качестве реализации
implementation project(':base')
implementation project(':module1')
implementation project(':module2')
implementation project(':module3')
wearApp project(':wear')
- BaseModule (также добавлен
application project(':app')
)
добавленной baseFeature true
в градле
feature project(':module1')
feature project(':module2')
feature project(':module3')
api project(':apimodule')
3. apimodule
добавленной baseFeature true
в градле
Вот мой единственный файл module1 gradle.
apply plugin: 'com.android.feature'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 23
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation project(':base')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
1 ответ
По моему вопросу я добавил baseFeature true
в двух файлах Gradle. Один из базовых модулей gradle и один API-модуль gradle и API-модуль добавлены в качестве проекта зависимостей в базовый модуль.
Что я сделал, это то, что рефакторинг всего кода модуля API в базовый модуль и сделать только один базовый модуль с baseFeature true
,
Это единственный случай, решивший мою проблему, надеюсь, это поможет и вам.