我的代码工作正常,但在应用proguard后,我收到以下异常
05-04 16:12:00.803:E / AndroidRuntime(22257): java.lang.NoSuchMethodError: com.android.internal.telephony.ITelephony.a
我有Itelephony.aidl
但仍然收到错误。谁能告诉我是否有办法解决这个问题?
在google上,我无法获得有关如何保持接口,接口成员和内部类以及内部类成员的示例的更多信息。
实际上我想保留我的应用程序中的所有内容,但只是提供并优化它。有没有办法实现它?
答案 0 :(得分:7)
您需要从 proguard 中排除ITelephony
类,即添加此内容...
-keep class com.android.internal.telephony.ITelephony { *; }
...输入您的proguard.cfg
文件。您可以在项目根文件夹中找到它。
Proguard 是一种混淆代码的工具,即通过应用各种优化(例如重命名类)使其更紧凑,对其他人的可读性更低。因此,在某些情况下,这可能会对功能产生负面影响,例如:如果考虑动态反射调用。
干杯!