Desejo excluir alguns caminhos de arquivo do ProGuard. Exemplocom.myapp.customcomponents
Como posso fazer isso? Eu odeio colocar sinalizadores -keep para cada arquivo de componente personalizado que tenho neste diretório.
Tentei o seguinte, mas não funcionou:
-keep public class com.myapp.customcomponents.*
Adicione a seguinte linha na parte inferior da configuração do ProGuard:
Substitua o nome do pacote de acordo, aqui o pacote
com.facebook
será excluído do ProGuard.fonte
{ *; }
significa?Muitas pessoas parecem recomendar
-keep class com.myapp.customcomponents.** { *; }
uma forma de impedir que um caminho seja processado. Veja aqui:O problema com essa solução é que ainda há algum nível de ofuscação acontecendo, o que pode quebrar seu código. Você pode ver o mapeamento na impressão do mapeamento:
A solução que optei é um processo de duas etapas. Primeiro, use
injars
com um filtro para selecionar o caminho do pacote que gostaria de processar. É possível adicionar outros caminhos de pacote como bibliotecas.Em segundo lugar, mescle o jar processado com o jar original, mas apenas os caminhos que foram ignorados.
O resultado é um jar mesclado que é a combinação do caminho do pacote processado e dos caminhos ignorados. Este exercício é inválido se alguém puder fornecer uma maneira de pular completamente o processamento de certos caminhos (que eu não encontrei).
fonte
O que funcionou para mim usando o Android Studio 4.0 é:
Asteriscos duplos (**) em outras respostas não funcionaram para mim. Eu também tentei a configuração acima com R8, funciona bem.
fonte