я иметь два интерфейсаProguard держать переопределены методы внутри интерфейсов, которые расширяют другой интерфейс
public interface Base {
void methA();
void methB();
void methC();
}
и
public interface Sub extends Base {
@MyAnnotation("a")
void methA();
@MyAnnotation("b")
void methB();
@MyAnnotation("c")
void methC();
@MyAnnotation("d")
void methD();
@MyAnnotation("e")
void methE();
}
после того, как ProGuard у меня есть это два интерфейса
public interface a{
void a();
void b();
void c();
}
и
public interface b extends a{
@MyAnnotation("d")
void d();
@MyAnnotation("e")
void e();
}
, но для второго я должен был бы
public interface b extends a{
@MyAnnotation("a")
void a();
@MyAnnotation("b")
void b();
@MyAnnotation("c")
void c();
@MyAnnotation("d")
void d();
@MyAnnotation("e")
void e();
}
, что означает, что мне нужно переопределить методы с аннотациями тир. Мне все равно, имена методов мне просто нужны аннотации.
я не могу установить аннотации для a
, b
и c
в интерфейсе базы, как у меня есть 2 (может быть, позже более) Sub интерфейсов, которые устанавливают другие значения для @MyAnnotation
так, есть способ сказать proguard, чтобы сохранить дубликаты имен методов в подинтерфейсе?
У меня есть '-оптимизации! Code/simplification/arithmetic,! Field/* ,! class/merging/*', которые уже должны отключить слияние? Оптимизация, которой предшествует восклицательный знак «!» исключается из дальнейших попыток сопоставления с последующими именами оптимизации в фильтре. – Dodge
, даже когда я комментирую свою строку '-optimizations' и добавляю' -dontoptimize' методы были удалены :( – Dodge
hmmm, это означает, что фактическая причина не является оптимизацией. Попробуйте отключить сжатие с помощью '-dontshrink' – Jk1