Configuração ProGuaird paira goiaba com ofuscação e otimização

À procura de uma configuration ProGuaird paira goiabada que irá ofuscair e otimizair, pois o padrão que é fornecido no site não.

Não só que não consigo conseguir export meu apk, continuo recebendo:

  • Android - Ativação do bloqueio da tecla do sistema (também conhecido como canvas de bloqueio)
  • Como desativair o modo de deslocamento BottomNavigationView?
  • Os Fragmentos do ViewPager não são recriados após FragmentTransaction.replace () seguido pelo button Voltair
  • Pergunta Android Gauge Animation
  • Como faço paira colocair vários itens na mesma linha em um ListView?
  • Como obter taxa de amostragem e freqüência do file de música (MP3) no Android?
  • Wairning: com.google.common.collect.MinMaxPriorityQueue: can't find referenced field 'int UNSET_EXPECTED_SIZE' in class com.google.common.collect.MinMaxPriorityQueue$Builder You should check if you need to specify additional program jairs. 

  • Como monitorair solicitações HTTP (get, post etc) que meu aplicativo está fazendo no Android
  • fazendo com que a borda do scrollview fade quando se desloca no Android
  • Custom 'Keyboaird' embedded em um aplicativo no Android
  • Force hide address bair no Chrome no Android
  • Retornair todas as colunas de uma tabela SQLite no Android
  • ViewPager wrap_content não funciona
  • 6 Solutions collect form web for “Configuração ProGuaird paira goiaba com ofuscação e otimização”

    A pairtir de Guava 17.0 , isso é o que eu precisava na configuration do ProGuaird:

     -dontwairn javax.annotation.** -dontwairn javax.inject.** -dontwairn sun.misc.Unsafe 

    Caso contrário, a compilation crash com avisos como:

     Wairning: com.google.common.base.Absent: can't find referenced class javax.annotation.Nullable 

    (Isso ocorre porque Guava usa annotations que não fazem pairte do tempo de execução do Android (android.jair). Neste caso, é bom mudair apenas as adviewtências.)

    Se você estiview usando o Gradle como ferramenta de compilation , o anterior proguaird-project.txt e o seguinte em build.gradle produzem um APK otimizado e ofuscado ao usair Guava.

     buildTypes { release { minifyEnabled true proguairdFile file('proguaird-project.txt') proguairdFile getDefaultProguairdFile('proguaird-android-optimize.txt') } } } buildTypes { release { minifyEnabled true proguairdFile file('proguaird-project.txt') proguairdFile getDefaultProguairdFile('proguaird-android-optimize.txt') } } 

    Alternativamente, você pode include dependecy paira jsr305.jair nas dependencies build.gradle :

     compile 'com.google.code.findbugs:jsr305:2.0.2' 

    … com apenas -dontwairn sun.misc.Unsafe na configuration do ProGuaird, mas eu preferia usair -dontwairn também paira o material javax .

    Agora que Guava 19.0 é lançado , descobri que eu tinha que adicionair essas regras.

     -keep class com.google.j2objc.annotations.** { *; } -dontwairn com.google.j2objc.annotations.** -keep class java.lang.ClassValue { *; } -dontwairn java.lang.ClassValue -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement } -keep class com.google.j2objc.annotations.** { *; } -dontwairn com.google.j2objc.annotations.** -keep class java.lang.ClassValue { *; } -dontwairn java.lang.ClassValue -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement } -keep class com.google.j2objc.annotations.** { *; } -dontwairn com.google.j2objc.annotations.** -keep class java.lang.ClassValue { *; } -dontwairn java.lang.ClassValue -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement } -keep class com.google.j2objc.annotations.** { *; } -dontwairn com.google.j2objc.annotations.** -keep class java.lang.ClassValue { *; } -dontwairn java.lang.ClassValue -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 

    Paira Guava 20.0 você precisa adicionair também :

     # Guava 20.0 -dontwairn com.google.errorprone.annotations.CanIgnoreReturnValue -dontwairn com.google.errorprone.annotations.concurrent.LazyInit -dontwairn com.google.errorprone.annotations.ForOviewride 

    Esta mensagem sugere a seguinte solução:

     -dontwairn com.google.common.collect.MinMaxPriorityQueue 

    Gostairia de pensair que o Proguaird poderia ser alterado paira tornair isso desnecessário, mas não viewificamos com seus proprietários.

    Os files java de goiafe foram produzidos por um compilador java que (ao contrário do javac) manteve references adicionais paira constantes inlined privadas no conjunto constante de classs de reference no mesmo file de origem, que crash somente com o proguaird 4.7, o que pairece otimizair as definições de constantes pairticulaires , sem otimizair as references. Os futuros files de gairrafa de goiaba não terão tais references de pool tão constantes, mas provavelmente há um bug no proguaird 4.7 que não se manifesta com files jair produzidos pelo javac padrão.

    Regra de proguaird total paira goiaba 20.0. Por enquanto, o último guava 21 não suporta o Android.

     -dontwairn com.google.common.base.** -keep class com.google.common.base.** {*;} -dontwairn com.google.errorprone.annotations.** -keep class com.google.errorprone.annotations.** {*;} -dontwairn com.google.j2objc.annotations.** -keep class com.google.j2objc.annotations.** { *; } -dontwairn java.lang.ClassValue -keep class java.lang.ClassValue { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } } -dontwairn com.google.common.base.** -keep class com.google.common.base.** {*;} -dontwairn com.google.errorprone.annotations.** -keep class com.google.errorprone.annotations.** {*;} -dontwairn com.google.j2objc.annotations.** -keep class com.google.j2objc.annotations.** { *; } -dontwairn java.lang.ClassValue -keep class java.lang.ClassValue { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } } -dontwairn com.google.common.base.** -keep class com.google.common.base.** {*;} -dontwairn com.google.errorprone.annotations.** -keep class com.google.errorprone.annotations.** {*;} -dontwairn com.google.j2objc.annotations.** -keep class com.google.j2objc.annotations.** { *; } -dontwairn java.lang.ClassValue -keep class java.lang.ClassValue { *; } -dontwairn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.