Проблемы с Proguard - PullRequest
       11

Проблемы с Proguard

0 голосов
/ 06 июля 2018

У меня есть некоторые проблемы с Proguard. Пробовал тонны добавления в правила. Но, похоже, ничего не работает. Я выяснил, что проблема возникла, когда мы обновили версию Моши. Но мы не можем понизить его, поскольку нам это нужно.

Мы также следовали правилам, которые нужны библиотеке моши. Все они добавлены, но все равно происходит сбой при попытке выполнить сетевой вызов.

Дайте мне знать, если вы хотите увидеть что-нибудь еще, чтобы иметь возможность точно помочь.

Прямо сейчас любой толчок в правильном направлении приветствуется. Пытаясь решить этот беспорядок

W/System.err: io.reactivex.exceptions.UndeliverableException: kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Call is not yet supported for this function: public constructor AccountHolder(accountHolderId: kotlin.String, accountHolderName: kotlin.String) defined in com.core.network.model.response.AccountHolder[DeserializedClassConstructorDescriptor@c71e978] (member = null)
W/System.err:     at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
W/System.err:     at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:66)
W/System.err:     at io.reactivex.internal.operators.single.SingleDoOnSuccess$DoOnSuccess.onSuccess(SingleDoOnSuccess.java:59)
W/System.err:     at io.reactivex.internal.operators.single.SingleDoOnError$DoOnError.onSuccess(SingleDoOnError.java:52)
W/System.err:     at io.reactivex.internal.operators.single.SingleDoOnSubscribe$DoOnSubscribeSingleObserver.onSuccess(SingleDoOnSubscribe.java:77)
W/System.err:     at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:789)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:98)
W/System.err:     at android.os.Looper.loop(Looper.java:164)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6940)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
W/System.err: Caused by: kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Call is not yet supported for this function: public constructor AccountHolder(accountHolderId: kotlin.String, accountHolderName: kotlin.String) defined in com.core.network.model.response.AccountHolder[DeserializedClassConstructorDescriptor@c71e978] (member = null)
W/System.err:     at kotlin.reflect.jvm.internal.KFunctionImpl$caller$2.invoke(KFunctionImpl.kt:89)
W/System.err:     at kotlin.reflect.jvm.internal.KFunctionImpl$caller$2.invoke(KFunctionImpl.kt:34)
W/System.err:     at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93)
W/System.err:     at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32)
W/System.err:     at kotlin.reflect.jvm.internal.KFunctionImpl.getCaller(Unknown Source:7)
W/System.err:     at kotlin.reflect.jvm.ReflectJvmMapping.getJavaMethod(ReflectJvmMapping.kt:62)
W/System.err:     at kotlin.reflect.jvm.KCallablesJvm.setAccessible(KCallablesJvm.kt:81)
W/System.err:     at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory.create(KotlinJsonAdapter.kt:196)
W/System.err:     at com.squareup.moshi.Moshi.adapter(Moshi.java:130)
W/System.err:     at com.squareup.moshi.Moshi.adapter(Moshi.java:64)
W/System.err:     at com.squareup.moshi.CollectionJsonAdapter.newArrayListAdapter(CollectionJsonAdapter.java:52)
W/System.err:     at com.squareup.moshi.CollectionJsonAdapter$1.create(CollectionJsonAdapter.java:36)
W/System.err:     at com.squareup.moshi.Moshi.adapter(Moshi.java:130)
W/System.err:     at com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory.create(KotlinJsonAdapter.kt:231)
W/System.err:     at com.squareup.moshi.Moshi.adapter(Moshi.java:130)
W/System.err:     at retrofit2.converter.moshi.MoshiConverterFactory.responseBodyConverter(MoshiConverterFactory.java:91)
W/System.err:     at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:330)
W/System.err:     at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:313)
W/System.err:     at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:739)
W/System.err:     at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:172)
W/System.err:     at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
W/System.err:     at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
W/System.err:     at java.lang.reflect.Proxy.invoke(Proxy.java:913)
W/System.err:     at $Proxy1.getAuthenticationVerify(Unknown Source)
W/System.err:     at com.component.main.intro.impl.IntroFragmentInteractor.verifyAuthentication(IntroFragmentInteractor.kt:19)
W/System.err:     at com.component.main.intro.impl.IntroFragmentPresenter.verifyAuthentication(IntroFragmentPresenter.kt:95)
W/System.err:     at com.component.main.intro.impl.IntroFragmentPresenter.handleIdFinished(IntroFragmentPresenter.kt:90)
W/System.err:     at com.component.main.intro.impl.IntroFragmentPresenter$startAuthentication$1.accept(IntroFragmentPresenter.kt:74)
W/System.err:     at com.component.main.intro.impl.IntroFragmentPresenter$startAuthentication$1.accept(IntroFragmentPresenter.kt:26)
W/System.err:     at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:63)
W/System.err:   ... 12 more

Модуль Proguard 1

    -keep class com.shared.** { *;}
-dontwarn com.shared.**
#

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}



-dontwarn com.google.common.**
-dontwarn ch.qos.logback.**
-dontwarn dagger.android.**
-dontwarn io.reactivex.**
-dontwarn com.crashlytics.**
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
-dontwarn retrofit2.Platform$Java8

-keep class io.reactivex.** { *; }
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-dontwarn org.jetbrains.annotations.**
-keep class kotlin.Metadata { *; }

-keepclassmembers enum * { *; }

-keep public class * extends java.lang.Exception
-keep @com.squareup.moshi.JsonQualifier interface *
-keep class com.crashlytics.** { *; }

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable

-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

#//Moshi
-keep class kotlin.** { *; }
-keep class org.jetbrains.** { *; }
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keepclassmembers class kotlin.Metadata {
    public <methods>;
}

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepclassmembers class my.models.package.** {
  <init>(...);
  <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *
-keepclassmembers class ** {
  @org.jetbrains.annotations.ReadOnly public *;
}

-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassifierDescriptorWithTypeParameters
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl
-dontwarn kotlin.reflect.jvm.internal.impl.load.java.JavaClassFinder
-dontwarn kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.TypeConstructor

# Retrofit
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions

-keep public class kotlin.reflect.jvm.internal.impl.builtins.* { public *; }
-keep class com.squareup.moshi.** { *; }
-keep interface com.squareup.moshi.** { *; }
-dontwarn com.squareup.moshi.**
-keepclassmembers class ** {
    @com.squareup.moshi.FromJson *;
    @com.squareup.moshi.ToJson *;
}
#Rx
-dontwarn sun.misc.**

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

-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

-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**

-keepclasseswithmembers class com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory * {
    *;
}
-keep class kotlin.reflect.**
-keep class com.squareup.moshi.**
-keep class retrofit2.converter.moshi.**
-keep class retrofit2.**

Модуль Proguard 2

-dontobfuscate

-dontwarn com.google.common.**
-dontwarn ch.qos.logback.**
-dontwarn dagger.android.**
-dontwarn io.reactivex.**
-dontwarn com.crashlytics.**
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
-dontwarn retrofit2.Platform$Java8

-keep class io.reactivex.** { *; }
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers enum * { *; }

-keep public class * extends java.lang.Exception
-keep @com.squareup.moshi.JsonQualifier interface *
-keep class com.crashlytics.** { *; }

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable

-keepclassmembers class kotlin.Metadata {
    public <methods>;
}

-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

#//Moshi

-keep class com.squareup.moshi.** { *; }
-keep interface com.squareup.moshi.** { *; }
-dontwarn com.squareup.moshi.**

-keepclassmembers class ** {
    @com.squareup.moshi.FromJson *;
    @com.squareup.moshi.ToJson *;
}

-keep class kotlin.** { *; }
-keep class org.jetbrains.** { *; }
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepclassmembers class my.models.package.** {
  <init>(...);
  <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *
-keepclassmembers class ** {
  @org.jetbrains.annotations.ReadOnly public *;
}
-keep class kotlin.reflect.jvm.internal.** { *; }


-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassifierDescriptorWithTypeParameters
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl
-dontwarn kotlin.reflect.jvm.internal.impl.load.java.JavaClassFinder
-dontwarn kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.TypeConstructor

# Retrofit
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions

-keep public class kotlin.reflect.jvm.internal.impl.builtins.* { public *; }

#Rx
-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
...