Это вызвано тем, что javac содержит постоянную:
javap -l -c -constants -cp THEJAR com.example.ProguardConstantFieldUsageDemo
выводит
...
0: ldc #3 // String I'm not dead!I agree
...
Таким образом, константа действительно не существует в байт-коде. Похоже, то же самое происходит и с нестатическими c и не финальными полями.
Решение состоит в том, чтобы сконфигурировать proguard для сохранения всех приватных полей:
-keepclassmembers class * {
private <fields>;
}
Это также подавлять предупреждения о реальных мертвых полях, но это не большая проблема, потому что другие анализаторы состояния могут найти их, так как они являются частными.