当前位置:   article > 正文

安卓library中使用butterknife遇到的一些问题_android butterknife 的问题

android butterknife 的问题

最近在做组件集成,将遇到的问题记录一些。
当我把Module到到App里面并配置了依赖同步一些项目的时候提示Manifest merger failed查看提示Suggestion: add ‘tools:replace=“android:appComponentFactory”’,照着提示修改Manifest文件还是提示错误。

ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
	is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
	Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at manifestMerger4843771718690322480.xml:7:5-9:19 to override.
  • 1
  • 2
  • 3

仔细看会发现Module和App的里面有文件冲突,一个是support.v4包一个是androidx包,
当我们把AndroidManifest文件打开,并切换到合并后的清单文件<点击下面的Merged Manifest>没有发现Manifest合并冲突。对于多Module集成合并Manifest文件规则可以参考安卓Manifest合并规则
在这里插入图片描述
查看文件依赖,可以看到有androidx包和support包,它们不能兼容,对于support包和androidx冲突问问题,我们可以选择support包向androidx转换,也可以向support转换,AndroidStudio给我们提供了相应的快捷方式
在这里插入图片描述
我选择后者,转换同步后,还是没有解决问题。
那是神马情况嘞,一定是依赖库依赖的第三方库依赖了androidx,那我们如何查看嘞,
如下所示:Project Structure ->(选中你的Module) ->All Dependencies ->点击右侧的Resolved Dependencies 就可以查看到依赖的第三方库了,可以看到butterknife确实依赖了androidx的库了在这里插入图片描述
好,现在已经定位到问题了,那就降低butterknife的版本,在github上找到butterknife的库,查看issue,发现别人早就遇到过这类问题了,里面有一条是这样描述的在这里插入图片描述
作者建议使用9.0.0的版本。
于是果断切换版本到9.0.0并添加对java 8的支持就可以了。至于如何在library中使用butterknife可以参见大佬的github地址是https://github.com/JakeWharton/butterknife。
好久没有写博客了,写出来的文字都那么生硬,将就一下吧,嘻嘻…

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/529617
推荐阅读
相关标签
  

闽ICP备14008679号