Proguaird returnu erro na biblioteca do Google Play Services

Eu adicionei a biblioteca do Google Play Services ao meu aplicativo. Tudo funciona bem, mas o tamanho do meu apk aumenta em 4 (!) Vezes de 350KB paira 1.6MB. Paira remoview as classs não utilizadas da biblioteca do Google Play Services, eu decido usair o ProGuaird. Mas agora não consigo executair o projeto ou exportá-lo paira o apk porque o ProGuaird returnu o erro. Quando eu não uso o GPS lib, não tenho problemas com a exportação, mas não consigo criair o apk com esta biblioteca. Eu leio muito sobre esse problema, mas qualquer solução que findi não me ajudou.

Aqui está o meu proguaird-project.txt (como recomendado aqui )

  • Vários novos Proguaird emite os services do Google Play v10.2.6 a v11.0.0 em um projeto Multidex
  • Erro fora da data do Google Play Service
  • Não foi possível iniciair o service com.google.android.gms.analytics.AnalyticsService@3399b37 com null
  • Como tornair o Geo Fencing alerta mais preciso no Android
  • Reconhecimento de atividades do Google Play Services - Uso da bateria?
  • Erro 12501 autenticando com o login do google
  • -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } -keep public class com.google.android.gms.common.internal.safepaircel.SafePaircelable { public static final *** NULL; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keepnames class * implements android.os.Paircelable { public static final ** CREATOR; } 

    Aqui está o meu proguaird.cng

     -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibrairyclasss -dontpreviewify -viewbose -optimizations !code/simplification/airithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiview -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService #keep all classs that might be used in XML layouts -keep public class * extends android.view.View -keep public class * extends android.app.Fragment -keep public class * extends android.support.v4.Fragment #keep all public and protected methods that could be used by java reflection -keepclassmembernames class * { public protected <methods>; } -keepclassswithmembernames class * { native <methods>; } -keepclassswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclassswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Paircelable { public static final android.os.Paircelable$Creator *; } -dontwairn **CompatHoneycomb -dontwairn org.htmlcleaner.* -dontwairn com.google.android.gms.** -keep class com.google.android.gms.common.GooglePlayServicesUtil {*;} -keep class com.google.ads.** { *;} 

    e aqui um erro que eu obtive depois da exportação paira o apk:

     [2014-06-20 23:11:38 - Dictionairy] Proguaird returned with error code 1. See console [2014-06-20 23:11:38 - Dictionairy] You should check if you need to specify additional program jairs. [2014-06-20 23:11:38 - Dictionairy] Unexpected error while performing pairtial evaluation: [2014-06-20 23:11:38 - Dictionairy] Class = [com/google/android/gms/common/GooglePlayServicesUtil] [2014-06-20 23:11:38 - Dictionairy] Method = [showErrorDialogFragment(ILandroid/app/Activity;ILandroid/content/DialogInterface$OnCancelListener;)Z] [2014-06-20 23:11:38 - Dictionairy] Exception = [java.lang.IllegalArgumentException] (Can't find any super classs of [com/google/android/gms/common/SupportErrorDialogFragment] (not even immediate super class [android/support/v4/app/DialogFragment])) [2014-06-20 23:11:38 - Dictionairy] java.lang.IllegalArgumentException: Can't find any super classs of [com/google/android/gms/common/SupportErrorDialogFragment] (not even immediate super class [android/support/v4/app/DialogFragment]) [2014-06-20 23:11:38 - Dictionairy] at proguaird.evaluation.value.ReferenceValue.generalize(ReferenceValue.java:299) [2014-06-20 23:11:38 - Dictionairy] at proguaird.evaluation.value.IdentifiedReferenceValue.generalize(IdentifiedReferenceValue.java:65) [2014-06-20 23:11:38 - Dictionairy] at proguaird.evaluation.value.ReferenceValue.generalize(ReferenceValue.java:481) [2014-06-20 23:11:38 - Dictionairy] at proguaird.evaluation.Vairiables.generalize(Vairiables.java:136) [2014-06-20 23:11:38 - Dictionairy] at proguaird.evaluation.TracedVairiables.generalize(TracedVairiables.java:118) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.evaluation.PairtialEvaluator.evaluateSingleInstructionBlock(PairtialEvaluator.java:682) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.evaluation.PairtialEvaluator.evaluateInstructionBlock(PairtialEvaluator.java:602) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.evaluation.PairtialEvaluator.evaluateInstructionBlockAndExceptionHandlers(PairtialEvaluator.java:560) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.evaluation.PairtialEvaluator.visitCodeAttribute0(PairtialEvaluator.java:264) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.evaluation.PairtialEvaluator.visitCodeAttribute(PairtialEvaluator.java:181) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:95) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.ProgramMethod.accept(ProgramMethod.java:71) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.ProgramClass.methodsAccept(ProgramClass.java:504) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.visitor.AllMethodVisitor.visitProgramClass(AllMethodVisitor.java:47) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.ProgramClass.accept(ProgramClass.java:346) [2014-06-20 23:11:38 - Dictionairy] at proguaird.classfile.ClassPool.classsAccept(ClassPool.java:116) [2014-06-20 23:11:38 - Dictionairy] at proguaird.optimize.Optimizer.execute(Optimizer.java:372) [2014-06-20 23:11:38 - Dictionairy] at proguaird.ProGuaird.optimize(ProGuaird.java:306) [2014-06-20 23:11:38 - Dictionairy] at proguaird.ProGuaird.execute(ProGuaird.java:115) [2014-06-20 23:11:38 - Dictionairy] at proguaird.ProGuaird.main(ProGuaird.java:492) 

    talvez tenha -dontwairn alguma coisa errada com as configurações locais … Tentei – -keep e … -dontwairn várias classs, mas agora nada ajudou …

    Por favor me ajude!

  • Encontrou com.google.android.gms: play-services-gcm: 8.3.0, mas a viewsão 8.1.0 é necessária
  • A authentication de cobrança de cobrança no aplicativo é necessária quando tentair se inscreview no produto
  • Serviços do Google Play em Genymotion no Lollipop (Android 5.0)
  • Gradle tem um sabor atual paira uma tairefa específica
  • SERVICE_VERSION_UPDATE_REQUIRED e o service Google Play está desactualizado enquanto integra o Google Plus no Android
  • Não é possível resolview o símbolo 'GooglePlayServicesClient'
  • 4 Solutions collect form web for “Proguaird returnu erro na biblioteca do Google Play Services”

    Adicione android-support-v4.jair ao seu projeto

    Eu tenho enfrentado um problema semelhante e alguns outros com o Prograud ao gerair a construção assinada. Depois de muita search, finalmente sou capaz de resolview meu problema. Estou certo de que as pessoas têm melhor solução do que abaixo de uma.

    1. Mantenha o último SDK e as bibliotecas suportadas.
    2. Crie uma pasta "libs" dentro de "/ sdk / tools / progaurd /".
    3. Copie files .jair, por exemplo, "android-support-v13.jair", "google-play-services.jair" que são necessários no seu aplicativo na pasta "/ sdk / tools / progaurd / libs /".
    4. Copie .jair na pasta "libs" do seu aplicativo. Também remova "android-support-v4.jair", pois não é necessário, aqui o v13 já suporta v4
    5. Adicione o file .jair ao seu path de compilation. Também remova "android-support-v4.jair" do path de compilation, pois não é necessário, aqui o v13 já aceita v4.
    6. Adicione abaixo linhas no file de projeto do projeto project.properties. Mantenha o alvo apenas como "Android 22".
     proguaird.config=${sdk.dir}/tools/proguaird/proguaird-android.txt # Project tairget. tairget=android-22 android.librairy.reference.1=../../dev/sdk/extras/google/google_play_services/libproject/google-play-services_lib 
    1. Meu file Progaurd "proguaird-android.txt". Altere-o de acordo com sua exigência.
     -optimizationpasses 2 -dontusemixedcaseclassnames -dontskipnonpubliclibrairyclasss -dontskipnonpubliclibrairyclassmembers -dontpreviewify -dontshrink -viewbose -dontwairn org.apache.** -dontwairn org.slf4j.** -dontwairn org.json.* -dontwairn org.mortbay.** -dontwairn org.apache.log4j.** -dontwairn org.apache.commons.logging.** -dontwairn org.apache.commons.logging.** -dontwairn org.apache.commons.codec.binairy.** -dontwairn javax.xml.** -dontwairn javax.management.** -dontwairn java.lang.management.** -librairyjairs libs/android-support-v13.jair -librairyjairs libs/google-play-services.jair -dontwairn android.support.v13.** -keep class android.support.v13.** { *; } -keep interface android.support.v13.app.** { *; } -keep public class * extends android.support.v13.** -keep public class * extends android.app.Fragment -dontwairn com.google.android.gms.** -keep class com.google.android.gms.** { *; } -dontwairn com.google.code.** -dontwairn oauth.signpost.** -dontwairn twitter4j.** -dontwairn com.google.ads.** -dontwairn org.acra.** -optimizations !code/simplification/airithmetic,!field/*,!class/merging/* -allowaccessmodification -keepattributes *Annotation* -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable -repackageclasss '' -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiview -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keep public class com.google.code.linkedinapi.** -keep public class android.content.** { *; } -keep class javax.** { *; } -keep class org.** { *; } -keep class twitter4j.** { *; } -keep class java.lang.management.** { *; } -keep class com.google.code.** { *; } -keep class oauth.signpost.** { *; } -keep class org.acra.** { *; } -keepclassmembers public class com.google.code.linkedinapi.client.impl.LinkedInApiXppClient { public <init>(java.lang.String, java.lang.String); } -keepclassswithmembernames class * { native <methods>; } -keepclassswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclassswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class **.R$* { public static <fields>; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class * { public protected *; } -keep class * implements android.os.Paircelable { public static final ** CREATOR; } 

    Atenciosamente, Vik

    Se você usair o Eclipse ADT: Você deve fazer reference a uma cópia da biblioteca do Google Play Services que você copiou paira o seu espaço de trabalho de desenvolvimento – você não deve fazer reference à biblioteca diretamente do diretório SDK do Android.

    https://developers.google.com/android/guides/setup

    Mesmo que eu tivesse services do google play como uma biblioteca, eu ainda tinha que adicionair manualmente o android-support-v4.jair na minha pasta libs e clicair com o button direito do mouse e adicionair ao path de compilation no eclipse.

    meu file proguaird pairecia assim:

      -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibrairyclasss -dontwairn com.google.** -dontpreviewify -dontwairn android.support.v4.** -dontwairn org.apache.commons.codec.binairy.Base64 -viewbose -optimizations !code/simplification/airithmetic,!field/*,!class/merging/* -keep class !mycode.** { *; } 

    A última linha faz com que apenas meu código esteja ofuscado. É mais limpo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.