Подтвердить что ты не робот

Отключить слияние манифеста в Android Gradle Сборка

Я использую новую систему сборки gradle android.

Проект состоит из двух проектов библиотеки Android и одного основного проекта.

Используя конструкцию ant, манифестное слияние должно быть включено в project.properties. Но при использовании системы сборки gradle слияние манифеста включено по умолчанию. Как я могу отключить манифестное слияние?

4b9b3361

Ответ 1

Изменить: это возможно, хотя и косвенно, начиная с 0,3

Что вам нужно сделать, так это отключить задачу processManifest, чтобы она не запускалась и не говорила processResources, где используется манифест:

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

Обратите внимание, что если вы настраиваете имя пакета приложения через DSL, вы должны оставить неактивный образ по умолчанию в местоположении по умолчанию, чтобы обеспечить согласованное имя пакета для классов R, а затем вручную сгенерировать манифесты в другом месте и указать каждый вариант processResources задача для них.

Ответ 2

Это может помочь.

 android.applicationVariants.all{ variant ->
       variant.outputs.each { output ->
         output.processResources.manifestFile = file('AndroidManifest.xml')
         output.processManifest.enabled=false
       }
  }

Ответ 3

Для плагина 0.6. + вам также нужно перейти от buildVariants в applicationVariants:

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

Ответ 4

Для плагина 0.5. + вам нужно перейти от each в all следующим образом:

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

Ответ 5

Не похоже, что эти решения работают для плагина 1.0:

Не удалось найти свойство 'processResources' on com.and[email protected]774f1d0b.

У кого-нибудь есть обновление? Наша проблема - это бродячая деятельность, проявляющаяся в последнем apk из recyclerview-v7: 21.0.3:

<activity
   android:label="RecyclerViewTestActivity"
   android:name="android.support.v7.widget.TestActivity"/>

Обновление: Похоже, что слияние манифеста может быть настроено (см. http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger). В этом конкретном случае TestActivity, выходящий из библиотеки recyclerview-v7, можно удалить с помощью:

<activity
    android:name="android.support.v7.widget.TestActivity"
    android:label="RecyclerViewTestActivity"
    tools:node="remove"/>

Спасибо Filip.