Правило proguard не работает для некоторых Java файлов - PullRequest
0 голосов
/ 04 мая 2020

Я использую библиотеку базы данных комнаты, и интерфейс имеет метод

@Query(Select * from employee where deptName = :DeptName)
List<Employee> getAllEmployeeFrom(deptName: String);

Я применил правило proguard:

-keep interface androidx.* { *; }
-keepclasseswithmembernames public interface packagename.dao.*{*;}
-keepclasseswithmembernames public class packagename.dao.*$DefaultImpls{*;}

Но окончательный класс, сгенерированный после запутывания proguard, равен

@Query(Select * from employee where deptName = :DeptName)
List getAllEmployeeFrom(deptName: String);

Здесь список отсутствует. Пожалуйста, помогите мне понять, почему тип списка изменился. Также тот же код, написанный на Kotlin, работает нормально. Я не могу перенести файл Java в Kotlin. Правило proguard должно быть написано для java файлов.

1 Ответ

0 голосов
/ 04 мая 2020

Опция -keep указывает точку входа в приложение, которое необходимо сохранить.

-keep class packageName.Employee ** { *; }
-keepclassmembers class packageName.Employee ** { *; }
...