Я настроил структуру проекта следующим образом:
buildscript-test-app
|
|
buildscript-test-lib
| \------------------------\
| |
buildscript-test-lib-sub-a buildscript-test-lib-sub-b
Оба lib-sub-*
содержат assets/foo.txt
с различным содержанием.
build.gradle
из buildscript-test-lib
:
применить плагин: 'com. android .library'
android {
// omitted default config stuff
packagingOptions {
pickFirst 'assets/**'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':buildscript-test-lib-sub-a')
implementation project(':buildscript-test-lib-sub-b')
}
build.gradle
из buildscript-test-app
:
apply plugin: 'com.android.application'
android {
// omitted default config stuff
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':buildscript-test-lib')
}
Gradle всегда выбирает файл из buildscript-test-lib-sub-a
независимо от порядка зависимостей (предположительно из-за упорядочения по алфавиту c).
Что-то еще в вашем buildscript должно быть неправильным, если это не работает. Если это не работает, можете ли вы предоставить более подробную информацию о build.gradle
вашего модуля приложения и библиотечных модулей?
Возможно, вы переопределяете pickFirsts
в своем приложении. В этом случае вместо pickFirsts = [somevalue]
do pickFirst += 'foo'
или pickFirst = 'foo'