您好,登錄后才能下訂單哦!
最近在做清理系統緩存功能時,用到以下方法
PackageManager pm = context.getPackageManager(); Method localMethod = pm.getClass().getMethod("freeStorageAndNotify", Long.TYPE, IPackageDataObserver.class); Long localLong = Long.valueOf(getEnvironmentSize() - 1L); Object[] arrayOfObject = new Object[2]; arrayOfObject[0] = localLong; localMethod.invoke(pm, localLong, new IPackageDataObserver.Stub() { public void onRemoveCompleted(String packageName, boolean succeeded) throws RemoteException { } });
在調試狀態能正常運行,但是正式打包編譯就遇到一個錯誤,日志提示
java.lang.NoSuchMethodException: freeStorageAndNotify [long, interface ]
,提示找不到freeStorageAndNotify 方法,解決方法是:在proguard.cfg文件中加入以下兩句:
-dontwarn android.content.pm.**
-keep class android.content.pm.** { *; }
使這個IPackageDataObserver.aidl這個類不被混淆,至此,問題解決了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。