【问题标题】:uses-sdk element cannot have a "tools:node" attributeuses-sdk 元素不能有“tools:node”属性
【发布时间】:2014-11-01 11:10:03
【问题描述】:

我昨晚更新了 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) uses-sdk 元素不能有“tools:node”属性
错误:(10, 5) 任务 ':app:processDebugManifest' 执行失败。
清单合并失败:uses-sdk 元素不能有“tools:node”属性

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

【问题讨论】:

  • 我也有同样的问题。任何帮助表示赞赏:)

标签: android android-studio android-manifest android-gradle-plugin build.gradle


【解决方案1】:

解决方案:--

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

<uses-sdk
    tools:node="merge"   <----This line do the magic
    android:minSdkVersion="14"
    android:targetSdkVersion="19" />

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" .....
.../>

【讨论】:

【解决方案2】:

好的,这不是答案,而是临时解决方法。

根据 Gradle 构建工具release notes,此问题已在版本 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 }

请参阅this question 以供参考。

【讨论】:

  • 我在其他桌面上更新了 IDE / gradle 构建工具,同步 / 构建完美运行。我将不胜感激有关此事的任何见解。
  • 更多见解:似乎是 ASNE 库导致了这个问题,请查看我的 cmets bug report
【解决方案3】:

我在升级到 Android Studio 1.0.0 rc4 后遇到了这个问题。我以前一直在使用,这样我就可以使用低于他们所依赖的一些库的最低 SDK 版本制作项目。事实证明,如果您删除 tools:replace 并让编译器再次出现清单合并冲突错误,它将为您提供更好的解决方案:

<uses-sdk tools:overrideLibrary="com.google.android.gms" />

至少,Google Play 服务库是我遇到的。实际上,如果需要,您可以列出一大堆。只需用逗号分隔软件包名称。您可能需要运行编译器几次,直到它告诉您导致问题的每个库。

【讨论】:

    【解决方案4】:

    我的解决方案

    • 我已从我的所有 manifest.xml 文件中删除了所有 &lt;uses-sdk tools:node="replace" /&gt;
    • 在我的 base.gradle 文件中(我添加的整个项目的文件

      ext {
        compileSdkVersion = 19
        buildToolsVersion = "21"
        minSdkVersion = 10
        targetSdkVersion = 19
      }
      
    • 在我的模块中我有这个

      // all modules
      compileSdkVersion rootProject.ext.compileSdkVersion
      buildToolsVersion rootProject.ext.buildToolsVersion
      // in an application module
      defaultConfig {
         applicationId "com.something"
         minSdkVersion rootProject.ext.minSdkVersion
         targetSdkVersion rootProject.ext.targetSdkVersion
         versionCode appVersionCode
         versionName appVersionName
      }
      

    【讨论】:

      【解决方案5】:

      将AS更新到v0.9.1,Gradle更新到0.14.1后问题解决了。

      谢谢你们_

      更新

      问题又出现了!

      更新 2

      以下是解决此问题的解决方法:

      1. 使用 Android Studio 0.8.14 / Gradle 构建工具 0.13.2 打开您的项目
      2. 构建您的项目。
      3. 切换回 Android Studio 0.9.1 / Gradle 构建工具 0.14.1
      4. gradlew assembleRelease 现在可以工作了

      【讨论】:

      • 我有 AS 0.9.2,Gradle 0.14.1,但错误仍然存​​在。
      • Iaph 快速帮助,如果您使用任何外部库(例如在我的情况下为 ASNE),请确保这些库的清单没有
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多