我正在尝试同时使用Shimmer库和Slider View library。
不幸的是,两个库中都有一个自定义属性,它们相互冲突:我遇到了duplicate attribute found
错误。
我已经读到这是一个错误,到目前为止还没有解决方案,我们无法在每个库的上下文中创建自定义属性。但是除了我自己实现滑块视图之外,还有其他解决方法吗?
Android resource compilation failed
app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:4619: error: duplicate value for resource 'attr/shape' with config ''.
\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:4619: error: resource previously defined here.
\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml: error: file failed to compile.````
答案 0 :(得分:0)
我认为有解决该问题的方法。但是,由于许可问题,我不确定您是否可以这样做。
我没有测试。不知道是否会工作。但我认为您可以尝试。如果仍然无法解决问题,请通知我,然后删除答案。
为避免该错误,您可以求助于可以访问AndroidImageSlider
的源代码这一事实。这样,您可以将源代码作为模块导入,而不是将该库添加为AAR文件。
这样,您可以重命名attr/shape
,并将其重新编译为项目的一部分。
1)从项目(从build.gradle等)中删除AndroidImageSlider
2)然后,创建一个名为“库”(File -> Project Structure -> Modules -> + -> Android Library
)的新模块
3)这将为您的项目<ProjectPath>/library
4)下载库源文件(使用git或作为zip文件),并将库文件夹的内容替换为所下载库文件夹中的内容(您可以忽略所有其他文件夹...您可以替换的文件)相同的名称。)
5)删除文件library/gradle-mvn-push.gradle
,并从library/build.gradle
中删除以下行:
apply from: './gradle-mvn-push.gradle'
6)在您的app/build.gradle
dependencies {
...
implementation project(":library")
...
}
7)同步并重建您的项目。
8)打开文件./library/src/main/res/values/attrs.xml
并重命名属性shape
(例如customShape
)。
9)尝试再次构建。自重命名该属性以来,可能会发生一些错误。修复它们。
10)您可以按如下方式将视图添加到布局中:
这将允许您编译项目。缺点是您有责任自行修复/更新库。另一方面,您可以控制库build.gradle
,然后可以更新构建工具版本,支持库版本等。
无论如何,这可能对您有帮助