studio - Deshabilitar la fusión manifiesta en Android Gradle Build
update gradle mac (5)
Edit: esto es realmente posible aunque indirectamente, comenzando con 0.3
Lo que debe hacer es deshabilitar la tarea processManifest para que no se ejecute y decirle a los recursos de proceso donde el manifiesto a utilizar es:
android.applicationVariants.all { variant ->
variant.processResources.manifestFile = file(''src/main/AndroidManifest.xml'')
variant.processManifest.enabled=false
}
Tenga en cuenta que si está personalizando el nombre del paquete de la aplicación a través del DSL, debe mantener el manifiesto predeterminado intacto en la ubicación predeterminada para proporcionar un nombre de paquete consistente para las clases R, y luego hacer que sus manifiestos se fusionen manualmente en otro lugar y señalar cada variante processResources tarea para ellos.
Estoy usando el nuevo sistema de desarrollo de Android Gradle.
El proyecto consta de dos proyectos de biblioteca de Android y un proyecto principal.
Al usar la compilación ant, la fusión de manifiestos debe estar habilitada en project.properties. Pero cuando se usa el sistema de construcción de gradle, la fusión de manifiestos está habilitada de forma predeterminada. ¿Cómo puedo deshabilitar la fusión manifiesto?
Esto puede ayudar.
android.applicationVariants.all{ variant ->
variant.outputs.each { output ->
output.processResources.manifestFile = file(''AndroidManifest.xml'')
output.processManifest.enabled=false
}
}
No parece que estas soluciones funcionen para el complemento 1.0:
No se pudo encontrar la propiedad ''processResources'' en com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@774f1d0b.
¿Alguien tiene una actualización? Nuestro problema es una actividad extraviada que aparece en la apk final de recyclerview-v7: 21.0.3:
<activity
android:label="RecyclerViewTestActivity"
android:name="android.support.v7.widget.TestActivity"/>
Actualización: parece que la fusión de manifiestos puede configurarse (consulte http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger ). En este caso específico, la TestActivity proveniente de la biblioteca recyclerview-v7 se puede eliminar con:
<activity
android:name="android.support.v7.widget.TestActivity"
android:label="RecyclerViewTestActivity"
tools:node="remove"/>
Gracias Filip
Para el complemento 0.5. + Tienes que cambiar de each
a all
esta manera:
android.buildVariants.all { variant ->
variant.processResources.manifestFile = file(''src/main/AndroidManifest.xml'')
variant.processManifest.enabled=false
}
Para el complemento 0.6. +, También debe cambiar de buildVariants
a applicationVariants
:
android.applicationVariants.all { variant ->
variant.processResources.manifestFile = file(''src/main/AndroidManifest.xml'')
variant.processManifest.enabled=false
}