Fusión de manifiesto de Gradle de Android: reemplaza el atributo 'uses-permission' procedente de una biblioteca

Para mi aplicación que estoy desarrollando con el último Android Studio estoy usando estas dependencias dentro de su archivo gradle:

dependencies { compile 'com.android.support:support-v4:21.0.+' compile 'com.helpshift:android-aar:3.7.1' } 

La com.helpshift:android-aar:3.7.1 necesita el siguiente permiso para una característica que no utilizo en mi aplicación principal:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Como se describe aquí y aquí , puedo anular atributos de las declaraciones XML de la actividad de la biblioteca importada.

¿Pero también puedo anular las declaraciones XML de manifiesto como los uses-permission mencionados uses-permission ?

Ya he intentado algo como esto en mi manifiesto principal, pero no funcionó:

 <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" tools:selector="com.helpshift"> </permission> 

También cambiar el elemento <permission> a <uses-permission> no ayudó. La aplicación todavía pide permiso para acceder a la tarjeta SC .

Mi principal AndroidManifest.xml se parece a esto ahora:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" xmlns:tools="http://schemas.android.com/tools" package="com.bmi.rechner" > <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" tools:selector="com.helpshift"> </uses-permission> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="com.android.vending.BILLING" /> <application ... 

Actualización : La respuesta sugerida por @CommonsWare está funcionando.

Son mis tools:selector="com.helpshift" que no es correcto. Lo dejo porque estoy seguro de que no necesitaré ese permiso en ninguna otra biblioteca por un tiempo.

También presentó una solicitud de funcionalidad para mejorar el Informe de Fusión de Manifiesto, que podría ayudar a encontrar el selector correcto en el futuro.

Sería un elemento <uses-permission> que remove , no un elemento <permission> .

Y tenga en cuenta que la librería puede bloquearse si su aplicación no tiene este permiso.

  • Compatible-pantalla aparece después de la etiqueta de aplicación?
  • ¿Cómo crear una clase de actividad en otra clase de actividad?
  • Permiso de manifiesto en Android Studio
  • Android: Intención de búsqueda no funciona
  • Cómo evitar que la aplicación se ejecute en tablets Android
  • La actividad no está asignada a Android.app.Activity Manifest XML
  • Cómo averiguar por qué un dispositivo Android no es compatible con un APK
  • No se permite el atributo de manifiesto de Android aquí
  • Asociar la extensión de ciertos archivos a mi aplicación Android
  • INSTALL_FAILED_CONFLICTING_PROVIDER en Android
  • ¿Por qué BroadcastReceiver funciona incluso cuando la aplicación está en segundo plano?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.