Правила ProGuard для отражения Котлина

Вот очень простой класс:

class MainActivity : AppCompatActivity() { val prop: String = "test" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.d("MainActivity", ::prop.name) } } 

Если я запустил это приложение с помощью ProGuard, используя следующие правила:

 -dontwarn kotlin.** -dontwarn org.w3c.dom.events.* -dontwarn org.jetbrains.kotlin.di.InjectorForRuntimeDescriptorLoader 

Я получаю это исключение:

 adg: Property 'prop' not resolved in class com.cypressworks.kotlinreflectionproguard.MainActivity 

Какие правила ProGuard мне нужно применить, чтобы они работали?

Если ProGuard удаляет ваш атрибут, правило dontwarn будет скрывать только предупреждающие сообщения. Что вам нужно, так это сказать ProGuard, чтобы сохранить его.

Одним из возможных способов может быть:

 -keepclassmembers public class com.cypressworks.kotlinreflectionproguard.** { public * *; } 
Intereting Posts
Android: запуск анимации при загрузке фрагмента Как акцептор может добавить значение в состояние и отправить обратно инициатору Проблема с выпуском Android 3.0 Gradle 3.0 PropertyModel не может работать с частным полем Kotlin с get () Как получить вход от пользователя в Android Studio в числовом значении и преобразовать его в переменную int в kotlin? В чем разница между именем var: String? и имя var: String Цвет фона изображения элемента Android ListView не изменяется Несогласованность получения данных из базы данных Firebase с тем же классом данных Воспроизведение только аудио 1, а не 2, 3 и 4 У Kotlin 1.2.10 и Java 9 есть противоположные правила относительно автоматических модулей? Android Studio 3.o не дает андроид Комната Kotlin: У сущностей и Pojos должен быть полезный публичный конструктор Работа для администратора устройства api не имеет собственного профиля AppCompatActivity, ViewModel и привязка данных Java 8 lambda to kotlin lambda