У меня есть несколько приложений в том же проекте, которые имеют те же зависимости, которые также создаются, некоторые из них нуждаются в них как stati c, а другие требуют их совместного использования. Я построил очень базовый c показ этой ошибки, основываясь на ответе https://github.com/gradle/gradle-native/issues/1017, и он получает практически ту же ошибку. Это базовый c проект с 2 библиотеками: 1 и: 2 и приложением cpp в: app. Это выдает следующую ошибку:
Could not determine the dependencies of task ':app:installDebug'.
> Could not resolve all task dependencies for configuration ':app:nativeRuntimeDebug'.
> Could not resolve project :1.
Required by:
project :app
> Module 'gradletest:1' has been rejected:
Cannot select module with conflict on capability 'gradletest:1:unspecified' also provided by [gradletest:1:unspecified(debugSharedRuntimeElements), gradletest:1:unspecified(debugStaticRuntimeElements)]
> Could not resolve project :1.
Required by:
project :app > project :2
> Module 'gradletest:1' has been rejected:
Cannot select module with conflict on capability 'gradletest:1:unspecified' also provided by [gradletest:1:unspecified(debugSharedRuntimeElements), gradletest:1:unspecified(debugStaticRuntimeElements)]
Вот мой пример, который я должен сломать. Я почти уверен, что следовал всему ответу, сказанному в github, и просмотрел документы gradle для всего, что смогу найти. В моей текущей ситуации, не связанной с MVP, у меня будет: app2, который будет иметь: 1 и: 2, связанные как общие библиотеки, так что просто установка: 1 и: 2 в качестве stati c, к сожалению, не решит проблему.
1 / build.gradle.kts
plugins {
`cpp-library`
`cpp-unit-test`
}
library {
linkage.set(listOf(Linkage.STATIC, Linkage.SHARED))
}
2 / build.gradle.kts
plugins {
`cpp-library`
`cpp-unit-test`
}
library {
linkage.set(listOf(Linkage.STATIC, Linkage.SHARED))
dependencies {
implementation(project(":1"))
}
}
app / build.gradle.kts
plugins {
`cpp-application`
`cpp-unit-test`
}
dependencies {
implementation(project(":1")) {
attributes { attribute(Attribute.of("org.gradle.native.linkage", Linkage::class.java), Linkage.STATIC) }
}
implementation(project(":2")) {
attributes { attribute(Attribute.of("org.gradle.native.linkage", Linkage::class.java), Linkage.STATIC) }
}
}
application {
}
Это было сделано в Gradle 5.4.1, и, к сожалению, получить обновления невероятно сложно, поэтому я не смог проверить, является ли проблема старой версией.