具有自定义属性冲突的库



我正在尝试一起使用微光图库和一个滑块库。

不幸的是,两个库中都有一个自定义属性,这是矛盾的:我遇到了duplicate attribute found错误。

我已经读到这是一个错误,到目前为止还没有解决方案,我们无法在每个库的上下文中创建自定义属性。但是除了我自己实施滑块视图之外,还有其他方法吗?

Android resource compilation failed 
appbuildintermediatesincrementalmergeDebugResourcesmerged.dirvaluesvalues.xml:4619: error: duplicate value for resource 'attr/shape' with config ''.
appbuildintermediatesincrementalmergeDebugResourcesmerged.dirvaluesvalues.xml:4619: error: resource previously defined here.
appbuildintermediatesincrementalmergeDebugResourcesmerged.dirvaluesvalues.xml: error: file failed to compile.````

我认为这个问题有解决方法。但是,我不确定您是否可以由于许可而执行此操作。

我没有测试。不确定它是否会起作用。但是我认为你可以尝试。如果那不起作用,请告诉我,我删除了答案。

为了避免该错误,您可以诉诸于您可以访问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并重命名atribute shape(例如customShape(。

9(尝试再次构建。由于您重命名该属性以来,可能会发生一些错误。修复它们。

10(您可以将视图添加到布局中,如下所示:

这将允许您编译项目。缺点是您有责任自己修复/更新库。另一方面,您可以控制库build.gradle,然后可以更新构建工具版本,支持库版等。

无论如何,这可能会帮助您

最新更新