¿Cómo puedo decirle a ProGuard que mantenga mi función que se utiliza para onClick?
Estoy usando el atributo android:onClick
en algunos de mis archivos de diseño .xml para mi aplicación de Android, pero ProGuard está quitando estos métodos de mi código cuando se ejecuta porque nada en mi código es llamarlos.
En lugar de especificar cada función individualmente, me gustaría nombrar algo como listener_functionName
, y usar comodines, como -keep listener_*
(sé que esto es incorrecto, pero espero que ilustra mi objetivo).
- Cómo incluir una configuración proguard en mi biblioteca de Android (AAR)
- Error de compilación referenciando archivo build.xml y proguard: "null returned: 1"
- Agregar ruta de archivo jar agregada en proyecto de biblioteca en PROGUARD
- Proguard: IllegalArgumentException - Error inesperado al evaluar la instrucción
- Recurso no encontrado excepción después de ejecutar proguard
Si esto es posible, sería genial, pero si no, todavía necesito saber cómo especificar estas funciones en el archivo proguard.cfg. Cualquier ayuda es apreciada.
- AssertionError en Gson EnumTypeAdapter cuando se utiliza Proguard Obfuscation
- Proguard obfusca nombres de actividad en un manifiesto de biblioteca fusionada
- ¿Cuál es la diferencia entre `com.example. **` y `com.example. ** {*;}`?
- Proguard elimina comentarios de origen Java
- Proguard no funciona cuando se exporta con el complemento Eclipse ADT R19
- Problema con ProGuard y RoboGuice con anotaciones de @Inject
- Firmado Exported Android App fallando con apache.commons.logging clase no se puede convertir en 'aaaac'
- NullPointerException al usar el archivo XML en res / raw con Proguard
Según la documentación proguard :
También se pueden especificar campos y métodos mediante expresiones regulares. Los nombres pueden contener los comodines siguientes:? Coincide con cualquier carácter único en un nombre de método. * Coincide con cualquier parte de un nombre de método.
Así, encontrarás especificando
-keep class com.example.MyClass { public void listener_*(android.view.View); }
En sus banderas proguard.
Puedes hacerlo una vez para todas tus clases de esta manera:
-keepclasseswithmembers class * { void listener_*(...); }
Un enfoque un poco más codicioso que debe mantener todos los métodos "onClick":
-keepclassmembers class * { public void * (android.view.View); }
==> Así que básicamente todos los métodos públicos que tienen un Android View como el único Paramater deben sobrevivir a ProGuard entonces.
- ¿El recolector de basura de Android hace una pausa en otras aplicaciones mientras se ejecuta?
- Retrofit post utilizando Firebase