这是我的示例代码。当我为我的应用程序启用Proguard时,它会抛出NoSuchMethodException
请查看此代码并帮助我编写Proguard规则。
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
Method getPackageSizeInfo;
try {
getPackageSizeInfo = packageManager.getClass().getMethod("getPackageSizeInfo", String.class,
IPackageStatsObserver.class);
getPackageSizeInfo.invoke(packageManager, p.packageName, new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
if (!PrefsManager.timeForNewClean(activity)) {
mNavCacheSize += cacheInc / 64;
mCacheSize += cacheInc / 32;
} else {
if (pStats.packageName.equals("com.android.browser") || pStats.equals("com.android.chrome")) {
mNavCacheSize += pStats.cacheSize;
} else {
mCacheSize += pStats.cacheSize;
}
}
progress = progress + progressInc;
publishProgress();
notifyResultToObservers();
}
});
} catch (NoSuchMethodException e) {
progress = progress + progressInc;
e.printStackTrace();
} catch (IllegalAccessException e) {
progress = progress + progressInc;
e.printStackTrace();
} catch (InvocationTargetException e) {
progress = progress + progressInc;
e.printStackTrace();
} finally {
publishProgress();
notifyResultToObservers();
}
}
这是我用Proguard运行应用程序时遇到的错误:
W/System.err: java.lang.NoSuchMethodException: getPackageSizeInfo [class java.lang.String, interface android.content.pm.a]