在更新到gradle的新版本之后,android获得Manifest合并失败的错误
接受更新项目到新版本的Gradle后。 我得到这个错误:
Error:Execution failed for task ':app:processDebugManifest'. Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-alpha1) from [com.android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 is also present at [com.android.support:design: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:22:5-24:41 to override.
我怎样才能解决这个问题,我如何更改build.gradle支持库
android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.sample.bookReader" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" } ... } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:multidex:+' compile 'com.android.support:appcompat-v7:26.0.0-alpha1' compile 'com.android.support:cardview-v7:26.0.0-alpha1' compile 'com.android.support:design:25+' compile 'com.jakewharton:butterknife:8.2.1' apt 'com.jakewharton:butterknife-compiler:8.2.1' ... }
而这个包含的是project build.gradle
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.1' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } allprojects { repositories { jcenter() maven { url "https://www.jitpack.io" } } } task clean(type: Delete) { delete rootProject.buildDir }
我试图使用gradlebuild议作为使用最新版本的支持库,但它不能解决我的问题
把它放在你的应用程序模块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' } } } }
您正在使用Android支持库的多个版本:
compile 'com.android.support:appcompat-v7:26.0.0-alpha1' compile 'com.android.support:cardview-v7:26.0.0-alpha1' compile 'com.android.support:design:25+'
两个是26.0.0-alpha1
,一个是使用25+
。
select一个具体的版本,并将其用于所有这三个。 由于您的compileSdkVersion
不是O
, 25.3.1
这三个库都使用25.3.1
,导致:
compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:cardview-v7:25.3.1' compile 'com.android.support:design:25.3.1'
我将所有支持库版本更改为25.3.1,并像魅力一样工作:
compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:design:25.3.1'
您还需要将compileSdkVersion和targetSdkVersion更改为25:
compileSdkVersion 25 targetSdkVersion 25
我没有使用不同版本的库,并得到相同的错误,这是发生在AS RC 1删除buildToolsVersion
后,但添加tools:node="replace"
做了伎俩,只需将其添加到您的清单文件<application ..../>
块:
<meta-data tools:node="replace" android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
将您的支持库更新到最新版本
**打开清单文件**添加到清单文件
<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
并在>> build.gradle模块应用程序中添加recyclerview:
compile 'com.android.support:recyclerview-v7:25.3.1'
并单击:立即同步
它发生在我身上同样的事情。 请参阅Gradle – > Build Gradle – >并确保编译“app compat”和“support design”行中的兼容性匹配,它们应该具有相同的版本。
然后要超级确定,它将启动没有问题,去文件 – >项目结构 – >应用程序,并检查选项卡性能的构build工具版本,它应该是相同的支持编译线,以防万一我把目标SDK版本为25以及选项卡Flavors。
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso- core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) *compile 'com.android.support:appcompat-v7:25.3.1'* compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' *compile 'com.android.support:design:25.3.1'* }
那就是我所做的和工作的。 祝你好运!
答案是可以接受的,但是你也可以做的一件事是从你的项目结构中定义库。 你可以做的是:
- 评论出现问题的所有图书馆
- 转到您的项目结构
- 从那里添加库,它会自动同步,问题就会消失。
- 如果问题仍然存在,请按照上述3个步骤,从错误日志中查找需要什么库的库。
会发生什么是预定义的库现在closures现在我正在采取appcompat:26.0.0-alpha1它使用旧的东西,当你添加新的东西,并试图解决它与旧的东西。 当你从你的项目结构中添加它时,它会添加相同的东西,但用新的东西来解决它。 你的问题将得到解决。
你尝试阅读链接这个
错误:执行任务':app:processDevDebugManifest'失败。 清单合并失败:属性meta-data#android.support.VERSION@value value =(25.3.0)然后是usd VERSION 26.0.0
: https : //medium.com/@PongPloyAppDev/error-execution-failed-for-task-app-processdevdebugmanifest-48576be751