Как сохранить 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', а не правилами обфускации.


Ответы (0 шт):