Я столкнулся с проблемой, когда использую proguard для приложения, использующего 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 я могу использовать этот API, но когда я использую proguard для компиляции, он дает classcastexception. Я знаю, что мне нужно добавить что-то в файл proguard.cfg, и я также пробовал несколько вещей, например -dontshrink -dontoptimize, но все равно это не сработало.
Сообщите мне, если мне не хватает чего-то, что нужно добавить в этот файл, или любого другого решения этой проблемы. Спасибо Nawab