当我弹出Android Studio通知时,我今天将我的支持存储库更新到46.0.0.
我去了下面的错误:
错误:任务':app:processDevDebugManifest'的执行失败.
清单合并失败:来自[com.android.support:support-v13:25.3.0] AndroidManifest.xml:27:9-31的属性meta-data#android.support.VERSION@value value =(25.3.0)目前在[com.android.support:preference-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 value =(26.0.0-alpha1).建议:在AndroidManifest.xml:25:5-27:34中添加'tools:replace ="android:value"'来覆盖.
我更新了所有依赖项以使用25.3.0版本的修订版26.0.0 Alpha 1,但事实证明我需要将compileSdk从25提升到26.如果你有AS 2.3你不能这样做,你需要得到来自金丝雀的不稳定的alpha/beta版本.
此链接显示更改:https: //developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-alpha1
关于迁移到新的Android O,这是链接:https: //developer.android.com/preview/migration.html
似乎使用AS稳定版本将不适用于新的存储库.
我怎样才能回到Android Studio Repository Version 45而不是新的46?
**更新:合并清单显示生成的库清单中包含的一个
但是因为它是一个生成的文件编辑是没用的,这就是为什么现在我坚持转45,直到新的AS处于稳定版本
一些库依赖于Android支持库的"X或更新"版本,因此Gradle依赖性解析会抓取最新的可用内容,忽略您实际拥有dependencies
块中指定的精确版本.
这不是你想要的.您希望所有具有相同版本和主要版本的支持库都必须匹配编译SDK版本.
幸运的是,您可以强制使用特定的支持库版本.
把它放在你的app模块 的末尾build.gradle
:
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { // Skip multidex because it follows a different versioning pattern. if (!requested.name.startsWith("multidex")) { details.useVersion '25.3.0' } } } }
当然,用你正在使用的版本替换版本.
dependecies
块中支持库的版本值现在无关紧要.
这是一个记录良好的方法,它正在工作.
找到依赖于一系列支持库版本的库
gradlew dependencies --configuration compile -p| grep ,
并且让所述图书馆的作者知道他们应该过渡依赖于他们的图书馆可以使用的最旧的支持库.
这旨在完全避免这个问题.