Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proguard configuration #24

Open
maslick opened this issue May 13, 2017 · 1 comment
Open

Proguard configuration #24

maslick opened this issue May 13, 2017 · 1 comment

Comments

@maslick
Copy link

maslick commented May 13, 2017

Hi David,

Could you help with the proguard configuration:

Warning:com.github.davidmoten.rx.Jaxws$ObservableAdapter: can't find superclass or interface javax.xml.bind.annotation.adapters.XmlAdapter
Warning:com.github.davidmoten.rx.Jaxws$ObservableAdapter: can't find referenced class javax.xml.bind.annotation.adapters.XmlAdapter
Warning:com.github.davidmoten.rx.Serialized: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder: can't find referenced class com.esotericsoftware.kryo.io.Output
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$1: can't find referenced class com.esotericsoftware.kryo.io.Output
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$2: can't find referenced class com.esotericsoftware.kryo.io.Output
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$2$1: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$2$1: can't find referenced class com.esotericsoftware.kryo.io.Output
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$3: can't find referenced class com.esotericsoftware.kryo.io.Output
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$4: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$5: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$6: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$7: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$7: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$7: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$7: can't find referenced class com.esotericsoftware.kryo.Kryo
Warning:com.github.davidmoten.rx.Serialized$KryoBuilder$7: can't find referenced class com.esotericsoftware.kryo.io.Input
Warning:com.github.davidmoten.rx.testing.TestSubscriber2: can't find referenced class org.junit.Assert
Warning:com.github.davidmoten.rx.testing.TestingHelper$TestSuiteFromCases: can't find referenced class org.junit.runners.Suite$SuiteClasses
Warning:com.github.davidmoten.rx.testing.TestingHelper$TestSuiteFromCases: can't find referenced class org.junit.runners.Suite
Warning:com.github.davidmoten.rx.testing.TestingHelper$TestSuiteFromCases: can't find referenced class org.junit.runner.RunWith
Warning:com.github.davidmoten.rx.testing.TestingHelper$TestSuiteFromCases: can't find referenced class org.junit.runners.Suite
Warning:com.github.davidmoten.rx.testing.TestingHelper$TestSuiteFromCases: can't find referenced class org.junit.runners.Suite$SuiteClasses
Warning:there were 75 unresolved references to classes or interfaces.

Thanks in advance.

@maslick
Copy link
Author

maslick commented May 13, 2017

this configuration worked for me

# 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 <methods>;
}

# 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 <fields>;
}

# 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 <methods>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <init>(...);
}



#### My settings
-dontwarn java.lang.invoke**
-dontwarn java.beans.ConstructorProperties

# RxJava
-dontwarn sun.misc.**

-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
   long producerIndex;
   long consumerIndex;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

-dontnote rx.internal.util.PlatformDependent

# David's Rx
-dontwarn javax.xml.**
-keep class com.esotericsoftware.kryo** { *; }
-dontwarn com.esotericsoftware.kryo**

-keep class org.junit.** { *; }
-dontwarn org.junit.**

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant