uses-sdk元素不能具有"tools:node"属性

His*_*ham 21 android android-manifest android-studio build.gradle android-gradle-plugin

我昨晚将Android Studio更新为0.9.0,buildToolsVersion更新为21.1.0并且gradle为0.14.0,之后我收到此错误

错误:任务':app:processDebugManifest'的执行失败.清单合并失败:uses-sdk元素不能具有"tools:node"属性

我花了整晚寻找解决方案,我发现了这个:
<uses-sdk tools:node="replace" />

但不幸的是,又增加了一个错误!

错误:(10,5)使用-sdk元素不能有"tools:node"属性
错误:(10,5)任务':app:processDebugManifest'的执行失败.
清单合并失败:uses-sdk元素不能具有"tools:node"属性

我读过的另一个解决方案,不使用support-v4:21,对我来说我不使用它,因为我正在使用v13.

Kai*_*bhi 18

解: -

将此行添加到uses-sdk标记,如下所示: -

<uses-sdk
    tools:node="merge"   <----This line do the magic
    android:minSdkVersion="14"
    android:targetSdkVersion="19" />
Run Code Online (Sandbox Code Playgroud)

并在清单中添加工具名称空间: -

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" .....
.../>
Run Code Online (Sandbox Code Playgroud)

  • 完美解决方案 (3认同)

Med*_*edo 8

好的,这不是答案,而是一个临时的解决方法.

根据Gradle构建工具发布说明,此问题已在版本0.13.2(2014/09/26)中修复
但是,似乎再次发生在0.14.0(2014/10/31)

您可以禁用清单合并任务,以便暂时构建项目.
在您的build.gradle文件中添加以下内容

android.applicationVariants.all { variant ->
variant.processResources.manifestFile = file('src/main/AndroidManifest.xml')
variant.processManifest.enabled=false }
Run Code Online (Sandbox Code Playgroud)

请参阅此问题以供参考.