Интерфейс реализован методами, удаленными после Proguard

#interface #proguard #abstractmethoderror

Вопрос:

Мои коды реализуют onComplete метод интерфейса com.google.android.gms.tasks.OnCompleteListener . И используется com.google.firebase.messaging.FirebaseMessaging.getInstance().getToken().addOnCompleteListener() . Но после Proguard этот onComplete метод был полностью удален и получил java.lang.AbstractMethodError сбой во время выполнения. Я перепробовал много комбинаций «-сохранить класс», но безуспешно! Пожалуйста, помогите, спасибо!

Оригинальные коды перед прогардом:

 import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.messaging.FirebaseMessaging;

public class MyClass {

    static public void testToken() {
        FirebaseMessaging.getInstance().getToken().addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
                String token = task.isSuccessful() ? task.getResult() : null;
                System.out.println("Token received:"   token);
            }
        });
    }
}
 

В proguard-project.txt:

 -keep public class com.google.android.gms.tasks.* { *; }
-keep public class com.google.firebase.messaging.* { *; }

-dontwarn com.google.android.gms.tasks.**
-dontwarn com.google.firebase.messaging.**
 

После того, как прогард:

 import com.google.android.gms.tasks.OnCompleteListener;
import com.google.firebase.messaging.FirebaseMessaging;

public class MyClass {

    public static void testToken() {
        FirebaseMessaging.getInstance().getToken().addOnCompleteListener(new OnCompleteListener<String>() {
        });
    }
}
 

И он был удален, а не переименован. Он получил исключение во время выполнения!

 16942 E AndroidRuntime: FATAL EXCEPTION: main
16942 E AndroidRuntime: Process: com.example.sample, PID: 16942
16942 E AndroidRuntime: java.lang.AbstractMethodError: abstract method "void com.google.android.gms.tasks.OnCompleteListener.onComplete(com.google.android.gms.tasks.Task)"
16942 E AndroidRuntime:     at com.google.android.gms.tasks.zzj.run(Unknown Source)
16942 E AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
16942 E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
16942 E AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)
16942 E AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417)
16942 E AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
16942 E AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
16942 E AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  788 W ActivityManager:   Force finishing activity com.example.sample/.MainActivity