web-dev-qa-db-ja.com

uses-sdk要素に「tools:node」属性を含めることはできません

Android Studioを昨夜0.9.0に、buildToolsVersionを21.1.0に、gradleを0.14.0に更新しました。その後、このエラーが発生します。

エラー:タスク ':app:processDebugManifest'の実行に失敗しました。マニフェストのマージに失敗しました:uses-sdk要素に「tools:node」属性を含めることはできません

私は解決策を探して昨夜過ごしました、私はこれを見つけました:
<uses-sdk tools:node="replace" />

しかし、残念ながら、もう1つのエラーが追加されました!

エラー:(10、5)uses-sdk要素に「tools:node」属性を含めることはできません
エラー:(10、5)タスク ':app:processDebugManifest'の実行に失敗しました。
マニフェストのマージに失敗しました:uses-sdk要素に「tools:node」属性を含めることはできません

私が読んだもう1つの解決策は、support-v4:21を使用しないことです。v13を使用しているため、私は使用しません。

21
Hisham

解決: -

この行を次のように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" .....
.../>
18
Kailash Dabhi

OKこれは答えではありませんが、一時的な回避策です。

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 }

参考として この質問 を参照してください。

8
Medo

Android Studio 1.0.0 rc4にアップグレードした後、これに遭遇しました。以前使用していたため、依存しているライブラリの一部よりも低いSDKバージョンでプロジェクトを作成できました。 、tools:replaceを削除し、マニフェストマージの競合でコンパイラエラーを再度発生させると、より良い解決策が得られます。

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

少なくとも、Google Play Servicesライブラリは私が遭遇したものでした。実際には、必要に応じて束全体をリストできます。パッケージ名をカンマで区切るだけです。問題の原因となっているすべてのライブラリが通知されるまで、コンパイラを数回実行する必要がある場合があります。

4
Joel

私の解決策

  • すべての<uses-sdk tools:node="replace" />をすべてのmanifest.xmlファイルから削除しました
  • 私のbase.gradleファイル(私が追加したプロジェクト全体の1つ)

    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
    }
    
3
Elad Gelman

ASをv0.9.1に、Gradleを0.14.1にアップデートすると、問題は解決しました。

君たちありがとう_

更新

問題が再び現れます!

更新2

この問題を解決するための回避策を次に示します。

  1. Android Studio 0.8.14/Gradle build tools 0.13.2でプロジェクトを開きます
  2. プロジェクトをビルドします。
  3. Android Studio 0.9.1/Gradle build tools 0.14.1に切り替えます
  4. gradlew AssembleReleaseが機能するようになりました
3
Hisham