17

私は新しいgradle android buildsystemを使用しています。

このプロジェクトは、2 つの Android ライブラリ プロジェクトと 1 つのメイン プロジェクトで構成されます。

Ant ビルドを使用する場合、project.properties でマニフェスト マージを有効にする必要があります。ただし、gradle ビルド システムを使用する場合、マニフェスト マージはデフォルトで有効になります。マニフェストのマージを無効にするにはどうすればよいですか?

4

5 に答える 5

10

編集:これは実際には間接的ではありますが、0.3から可能です

あなたがする必要があるのは、プロセスマニフェストタスクを無効にして実行されないようにし、使用するマニフェストがどこにあるかをプロセスリソースに伝えることです:

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

DSL を使用してアプリのパッケージ名をカスタマイズする場合は、R クラスに一貫したパッケージ名を提供するために、既定の場所にある既定のマニフェストを変更せずに保持し、手動でマージしたマニフェストを別の場所に配置して、各バリアントの processResources を指すようにする必要があります。彼らにタスク。

于 2012-12-19T18:52:40.417 に答える
8

これが役立つ場合があります。

 android.applicationVariants.all{ variant ->
       variant.outputs.each { output ->
         output.processResources.manifestFile = file('AndroidManifest.xml')
         output.processManifest.enabled=false
       }
  }
于 2015-04-20T22:03:41.310 に答える