Я создаю частную библиотеку Android, которая экспортирует в AAR, эта библиотека имеет свою собственную обфускацию, и я создал правила для потребителей-proguard, чтобы передать правила приложению, которое использует библиотеку.
Проблема в том, что я использую EventBus для внутреннего использования, все работает нормально, пока приложение не минимизирует себя.
Я использую предоставленные правила хранения из репозитория EventBus в двух правилах proguard (потребитель и правила длябиблиотека)
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
Но это не работает и выдает эту ошибку: Subscriber class g0 and its super classes have no public methods with the @Subscribe annotation
Я пытаюсь сохранить те классы, которые там используются, используя Subscribe
-keep class com.mypackage.mylibrary.MyClass {
@org.greenrobot.eventbus.Subscribe public <methods>;
}
-keepclassmembers class com.mypackage.mylibrary.MyClass { *; }
И это работает, но не идеально. Если удалить какую-либо строку из этих двух, то остановка работает. У меня есть идея, почему это происходит, если удаление хранения для класса в двух файлах proguard при компиляции скомпилирует библиотеку прямо НО, когда правила потребителя пытаются пропустить com.mypackage.mylibrary.MyClass
, не найдет.
Это просто происходит, когда приложение, использующее мой aar, пытается минимизировать.
Кто-нибудь сталкивался с такими же проблемами, как эта?