Как сохранить kotlin аннотации после обфускации с помощью jitpac?
Работаю над Android SDK. Один из методов необходимо пометить аннотацией Experimental.
Взял аннотацию с сайта kotlin:
@RequiresOptIn(message = "This method is in beta stage and marked as experimental. If you encounter errors using this method, then you can implement an edge-to-edge screen yourself.")
@Retention(AnnotationRetention.BINARY)
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
annotation class Experimental
Она отлично работает с выключенной обфускацией. Пользователь SDK обязан пометить метод с помощью OptIt. Тем самым дав свое согласие на использование данного метода.
Проблема в том, что после обфускации данная аннотация пропадает. Я пробовал менять Retention на AnnotationRetention.RUNTIME, но это никак не влияет.
Некоторые методы помечал @JvmStatic и эта аннотация сохраняется. Пробовал создавать свою аннотацию по примеру @JvmStatic добавив OptIn вот так:
@RequiresOptIn(message = "This method is in beta stage and marked as experimental. If you encounter errors using this method, then you can implement an edge-to-edge screen yourself.")
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class Experimental
Так же не отработало. Есть ли способ ее сохранить?
Возможно Вам что то скажет мой jitpac.yml
jdk:
- openjdk11
before_install:
- ./scripts/prepareJitpackEnvironment.sh
Мне кажется что нужно что то прописать в gradle, а не в правилах обфускации т.к недавно боролся с проблемой сохранения имен параметров методов. И разрешилось это с помощью freeCompilerArgs += '-java-parameters', а не правилами обфускации.