Xamarin Android ProGuard Enable

后端 未结 2 1718
小鲜肉
小鲜肉 2020-12-16 05:11

i am working on xamarin application. When i enable \"ProGuard\" in android properties, while building the application, I\'m getting the following error:

\"ja         


        
2条回答
  •  渐次进展
    2020-12-16 05:28

    I had a problem where Proguard was removing the Google Play Services libraries from my app.

    I had to add the following lines of text to the proguard-android.txt file found in this folder:

    /(Path to your Android SDK Folder)/tools/proguard

    -keep public class com.google.android.gms.* { public *; }
    -dontwarn com.google.android.gms.**
    

    Complete proguard-android.txt File

    -keep public class com.google.android.gms.* { public *; }
    -dontwarn com.google.android.gms.**
    
    # This is a configuration file for ProGuard.
    # http://proguard.sourceforge.net/index.html#manual/usage.html
    
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -verbose
    
    # Optimization is turned off by default. Dex does not like code run
    # through the ProGuard optimize and preverify steps (and performs some
    # of these optimizations on its own).
    -dontoptimize
    -dontpreverify
    # Note that if you want to enable optimization, you cannot just
    # include optimization flags in your own project configuration file;
    # instead you will need to point to the
    # "proguard-android-optimize.txt" file instead of this one from your
    # project.properties file.
    
    -keepattributes *Annotation*
    -keep public class com.google.vending.licensing.ILicensingService
    -keep public class com.android.vending.licensing.ILicensingService
    
    # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
    -keepclasseswithmembernames class * {
        native ;
    }
    
    # keep setters in Views so that animations can still work.
    # see http://proguard.sourceforge.net/manual/examples.html#beans
    -keepclassmembers public class * extends android.view.View {
       void set*(***);
       *** get*();
    }
    
    # We want to keep methods in Activity that could be used in the XML attribute onClick
    -keepclassmembers class * extends android.app.Activity {
       public void *(android.view.View);
    }
    
    # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
    
    -keepclassmembers class * implements android.os.Parcelable {
      public static final android.os.Parcelable$Creator CREATOR;
    }
    
    -keepclassmembers class **.R$* {
        public static ;
    }
    
    # The support library contains references to newer platform versions.
    # Don't warn about those in case this app is linking against an older
    # platform version.  We know about them, and they are safe.
    -dontwarn android.support.**
    
    # Understand the @Keep support annotation.
    -keep class android.support.annotation.Keep
    
    -keep @android.support.annotation.Keep class * {*;}
    
    -keepclasseswithmembers class * {
        @android.support.annotation.Keep ;
    }
    
    -keepclasseswithmembers class * {
        @android.support.annotation.Keep ;
    }
    
    -keepclasseswithmembers class * {
        @android.support.annotation.Keep (...);
    }
    

提交回复
热议问题