主要项目A (APK)依赖于次级项目B (AAR).A和B都依赖于C (AAR)。问题是C包括了两次,原因是:
"values.xml:XXX: error:属性“YYY已被定义”
如何从最终的APK中排除暂时依赖C?
项目A:
android_binary (
deps = [
':src',
], ...
)
android_library(
name = 'src',
deps = [
':C',
'//B:src',
'//B:res',
], ...
}
android_resource(
name = 'res',
res = 'src/main/res', ...
}次级项目B
android_aar (
deps = [
':src',
':res'
], ...
)
android_library(
name = 'src',
deps = [
':res',
':C'
], ...
)
android_resource(
name = 'res',
deps = [
':C'
], ...
)C是"appcompat-v7.aar“。
注:A在"A/libs“中包含C,B在"B/libs”中包含C。
发布于 2016-05-07 19:20:55
当我在做子项目B的时候,我最终从主项目A中删除了依赖项C。
这样,A通过子项目B获取C作为传递依赖,并防止C被包括两次。
发布于 2016-05-16 08:52:23
从您提供的示例中很难看出,但听起来您已经定义了两次'C‘:一个在A/libs中,一个在B/libs中。因为这件事巴克不明白这是“同一件事”。你应该做的是把'C‘放在一个A和B都可以引用它的位置(有一个与'A’和'B‘对等的’第三方‘文件夹是相当常见的),这样Buck就能够看到图形中有一个依赖钻石,并正确地解析它。
https://stackoverflow.com/questions/37012349
复制相似问题