Я столкнулся с проблемой, когда я использую proguard для приложения, использующего telephonyservice apis, используя отражение в android.
Я определил пакет com.android.internal.telephony и там я скопировал файл ITelephony.aidl.
Вот фрагмент кода, в котором я использую методы телефонии с использованием отражения.
Class<?> c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.android.internal.telephony.ITelephony telephonyService =
(com.android.internal.telephony.ITelephony) m.invoke(tm);
if(buttonInAction == acceptButton){
Log.v(TAG, "Answering the call");
telephonyService.answerRingingCall();
finish();
}
else{
Log.v(TAG, "Rejecting the call");
telephonyService.endCall();
finish();
}
Теперь без proguard я могу использовать этот apis, но когда я использую proguard для обработки, он дает classcastexception. Я знаю, что мне нужно добавить что-то в файл proguard.cfg, и я также попробовал несколько вещей, таких как -dontshrink -dontoptimize, но все же это не сработало.
Пожалуйста, дайте мне знать, если мне не хватает чего-то, что нужно добавить в этот файл или любое другое решение этой проблемы. благодаря Nawab