Android 启用规则(proguard rules.pro)后,开始给出一个错误,我不明白为什么

Android 启用规则(proguard rules.pro)后,开始给出一个错误,我不明白为什么,android,android-gradle-plugin,android-proguard,Android,Android Gradle Plugin,Android Proguard,当我单击包含此类代码类型的方法时,我得到一个错误(无法转换为)。我不知道还要向规则添加什么 ChatFragment=(ChatFragment)getSupportFragmentManager().findFragmentByTag(fragmentClass.getSimpleName()) 我的规则是: -keepattributes SourceFile,LineNumberTable -keepattributes Signature -keepattributes *Annotat

当我单击包含此类代码类型的方法时,我得到一个错误(无法转换为)。我不知道还要向规则添加什么

ChatFragment=(ChatFragment)getSupportFragmentManager().findFragmentByTag(fragmentClass.getSimpleName())

我的规则是:

-keepattributes SourceFile,LineNumberTable
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes Exceptions


-keep class android.support.v7.widget.**{ *; }
-keep class android.support.v7.widget.SearchView { *; }
-keep class javax.annotation.** { *; }
-keep class com.google.android.gms.** { *; }
-keep class com.google.common.collect.** { *; }
-keep class com.github.ajalt.reprint.module.** { *; }
-keep class com.samsung.** {*;}
-keep class com.squareup.okhttp.OkHttpClient.** {*;}
-keep interface android.support.v7.* { *; }
-keep class com.github.siyamed.shapeimageview.**{ *; }
-keep class org.java-websocket.**{ *; }
-keep class com.github.NaikSoftware.**{ *; }
-keep class com.crashlytics.sdk.android.**{ *; }
-keep class com.crashlytics.android.CrashlyticsInitProvider.**{ *; }
-keep class com.app.motohq.motohqapp.app.customs.Pair{ *; }



-dontwarn com.github.siyamed.**
-dontwarn android.support.v7.**
-dontwarn okio.**
-dontwarn okhttp3.**
-dontwarn retrofit2.**
-dontwarn com.squareup.picasso.**
-dontwarn javax.annotation.Nullable
-dontwarn java.lang.invoke.**
-dontwarn com.pushtorefresh.storio2.**
-dontwarn com.google.android.gms.**
-dontwarn com.samsung.**
-dontwarn android.support.v4.**


请共享您的代码。错误告诉您,当您执行
getSupportFragmentManager().findFragmentByTag(fragmentClass.getSimpleName())时
您不会返回
ChatFragment
的实例,而是另一个实例的实例。添加片段的代码在哪里?基本上,
fragmentClass
ChatFragment
不同,因为它在调用
getSimpleName
时返回了不同的类名。我知道,当我禁用规则(proguard rules.pro)时,应用程序在错误消息中写道,没有错误,一切正常。FragmentManager FragmentManager=baseActivity.getSupportFragmentManager();FragmentTransaction ft=fragmentManager.beginTransaction();fragmentManager.popBackStack(fragment.getClass().getSimpleName(),0);ft.addToBackStack(fragment.getClass().getSimpleName());ft.replace(content,fragment,fragment.getClass().getSimpleName());ft.commit();我发现一个问题,我需要使用getName()而不是getSimpleName()。请同时共享您的代码执行
getSupportFragmentManager()。findFragmentByTag(fragmentClass.getSimpleName())
您不会返回
ChatFragment
的实例,而是另一个实例的实例。添加片段的代码在哪里?基本上,
fragmentClass
ChatFragment
不同,因为它在调用
getSimpleName
时返回了不同的类名。我知道,当我禁用规则(proguard rules.pro)时,应用程序在错误消息中写道,没有错误,一切正常。FragmentManager FragmentManager=baseActivity.getSupportFragmentManager();FragmentTransaction ft=fragmentManager.beginTransaction();fragmentManager.popBackStack(fragment.getClass().getSimpleName(),0);ft.addToBackStack(fragment.getClass().getSimpleName());ft.replace(content,fragment,fragment.getClass().getSimpleName());ft.commit();我发现一个问题,我需要使用getName()而不是getSimpleName()。
-keepattributes SourceFile,LineNumberTable
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes Exceptions


-keep class android.support.v7.widget.**{ *; }
-keep class android.support.v7.widget.SearchView { *; }
-keep class javax.annotation.** { *; }
-keep class com.google.android.gms.** { *; }
-keep class com.google.common.collect.** { *; }
-keep class com.github.ajalt.reprint.module.** { *; }
-keep class com.samsung.** {*;}
-keep class com.squareup.okhttp.OkHttpClient.** {*;}
-keep interface android.support.v7.* { *; }
-keep class com.github.siyamed.shapeimageview.**{ *; }
-keep class org.java-websocket.**{ *; }
-keep class com.github.NaikSoftware.**{ *; }
-keep class com.crashlytics.sdk.android.**{ *; }
-keep class com.crashlytics.android.CrashlyticsInitProvider.**{ *; }
-keep class com.app.motohq.motohqapp.app.customs.Pair{ *; }



-dontwarn com.github.siyamed.**
-dontwarn android.support.v7.**
-dontwarn okio.**
-dontwarn okhttp3.**
-dontwarn retrofit2.**
-dontwarn com.squareup.picasso.**
-dontwarn javax.annotation.Nullable
-dontwarn java.lang.invoke.**
-dontwarn com.pushtorefresh.storio2.**
-dontwarn com.google.android.gms.**
-dontwarn com.samsung.**
-dontwarn android.support.v4.**
Process: com.app.motohq.motohqapp, PID: 9586
    java.lang.ClassCastException: com.app.motohq.motohqapp.ui.a.a.c.c cannot be cast to com.app.motohq.motohqapp.ui.a.g.c
        at com.app.motohq.motohqapp.ui.activities.MessagesActivity.b(MessagesActivity.java:243)
        at com.app.motohq.motohqapp.ui.a.a.c.c.a(MenuLastMessageDialogFragment.java:47)
        at com.app.motohq.motohqapp.d.c.b.a.f.a(MenuChatDialogFragmentView$$State.java:24)
        at com.app.motohq.motohqapp.d.b.a.g.a(MenuChatDialogFragmentPresenter.java:22)
        at com.app.motohq.motohqapp.b.x$a.onClick(DialogMenuStatusChatBindingImpl.java:129)
        at android.view.View.performClick(View.java:6256)
        at android.view.View$PerformClick.run(View.java:24701)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)