У меня есть проект Android, и это зависит от модуля библиотеки.В моем модуле есть такой интерфейс:
public interface SimpleAnimationListener extends Animation.AnimationListener {
@Override
default void onAnimationStart(Animation animation) {
onAnimation(Type.START);
}
@Override
default void onAnimationEnd(Animation animation) {
onAnimation(Type.END);
}
@Override
default void onAnimationRepeat(Animation animation) {
onAnimation(Type.REPEAT);
}
void onAnimation(Type type);
enum Type {
START,
END,
REPEAT
}
}
Использование:
public static void fadeViewOut(@NonNull View view, int duration) {
view.setVisibility(View.VISIBLE);
AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(duration);
anim.setAnimationListener((SimpleAnimationListener) type -> {
if (type == SimpleAnimationListener.Type.END) {
view.setVisibility(View.INVISIBLE);
}
});
view.startAnimation(anim);
}
Всякий раз, когда я использую этот интерфейс в своем проекте приложения.Я получаю следующее исключение:
FATAL EXCEPTION: main
java.lang.AbstractMethodError: abstract method not implemented
at Zt.onAnimationStart(lambda)
В моем mappings.txt у меня есть это:
com.example.mymodule.interfaces.SimpleAnimationListener -> Wt:
<...>
com.example.mymodule.utils.-$$Lambda$AnimationUtils$rrH5aPAPZuoC__1-9DiD10TFdgY -> Zt:
android.view.View f$0 -> a
Попытка добавления следующего в proguard-rules.pro
-keep public class com.example.mymodule.utils.AnimationUtils
-keep public interface com.example.mymodule.interfaces.SimpleAnimationListener
Тогда в моих отображениях я получу:
com.example.mymodule.interfaces.SimpleAnimationListener -> com.example.mymodule.interfaces.SimpleAnimationListener:
<...>
com.example.mymodule.utils.-$$Lambda$AnimationUtils$rrH5aPAPZuoC__1-9DiD10TFdgY -> Yt:
android.view.View f$0 -> a
Это тоже не получится.Но ошибка будет указывать на Yt .Если я перестаю использовать свой интерфейс, который переопределяет некоторые методы, тогда приложение работает, но поскольку в исходных интерфейсах есть несколько методов, я не могу использовать с ними lamdas.Есть идеи как это исправить?