实习连载日记:5.17-如果你觉得生活很无聊,你去问一个程序员,他一天都做了什么。

2017.5.17

####Manifest merger failed-如果你觉得生活很无聊,你去问一个程序员,他一天都做了什么。

今天又和gradle完了一天。我日gradle大爷。有强迫症的人伤不起。

以前也说道,当我集成bottom-navigation-bar的时候会报错:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(25.3.0) from [com.android.support:design:25.3.0] AndroidManifest.xml:27:9-31
	is also present at [com.android.support:appcompat-v7:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
	Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:34 to override.

错误原因就是你引用的navigationbar中的依赖和你项目中的依赖不同,因此报错,需要你添加一个标签,重写merge,确定一下子最终的版本。

但是你发现,不管你用什么姿势添加metadata标签,都不管用,于是我还特意去看了一下manifest merger.的文档,全是英文但还好我有chrome。(吐槽一下firefox的翻译,垃圾的一批,有时候根本翻译不了,垃圾垃圾垃圾)。发现这文档长不说,还晦涩难懂,好在有demo,但可是按照文档里的demo添加标签还是不好使,于是我上次用了极其不科学的手段,将项目中build.gradle中所有引用23.5.1的改为23.5.0,项目是正常运行了,但是一定是不正规的手段。不高端,很low而且万一项目中涉及到两个版本之间升级的特性,那不就炸了吗?

于是开始了辛苦的冲浪之旅。发现好多人都是复制别人的帖子粘贴,而百度这个二百五还特么没有个过滤功能,前几条都是同样的解决方法,百度真几把二百五。后来发现:

stackflow上:
http://stackoverflow.com/questions/43140059/manifest-merger-failed-suggestion-add-toolsreplace-androidvalue-to-meta
有个人和我一样的问题,下面有个大神的回答完美的解决了我的问题。
大神的话:

Problem is that all support libraries with same version and major version has to match compile SDK version. So try to force a specific support library version. Put this at the end of your app module in
build.gradle :

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

他说:支持库具有相同版本和主要版本和主要版本的支持库,必须匹配编译SDK版本。所以尝试强制一个具体的支持库版本在build.gradle总添加。

照着她的做了,好使。管用。强制了一个版本之后,也不会出现设计到多个版本之间不同特性的问题了。

但是你问我,这段代码是什么意思,呵呵,只能猜出个大概,鬼知道什么意思。

于是一天又要结束了。

如果你觉得生活很无聊,你去问一个程序员,他一天都做了什么。


因为这个帖子,我把APP性能优化的草稿删了,不知道怎么删的,哭死。那篇草稿其实是我记得笔记。哭死。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值