我使用proguard對我的代碼進行了模糊處理。在代碼中,我想用以下代碼從指定的包中讀取所有類。Proguard在ZipEntry中不保留包層次結構
URL directoryURL = Thread.currentThread().getContextClassLoader()
.getResource("com/test/ui/controller");
此代碼不起作用,因爲proguard創建的jar不會保留包層次結構。我寫了一個從混淆jar中讀取條目的代碼。這是輸出。 看到類包沒有保存在zip文件中。所以getResource()不起作用。
COM /測試/ UI /控制器/的A.class
COM /測試/ UI /控制器/ c.class
COM /測試/ UI /控制器/ b.class
COM /test/ui/controller/d.class
當我用unobfuscated jar運行相同的代碼時,這裏輸出。包級別保存在jar中。你有什麼想法可以告訴Proguard通過保持包級別來創建jar。
COM/
COM /測試/
COM /測試/ UI/
COM /測試/ UI /控制器/
COM /測試/ UI /控制器/一個。類
COM /測試/ UI /控制器/ c.class
COM /測試/ UI /控制器/ b.class
COM /測試/ UI /控制器/ d.class
如您所見,包名已保存。所以我們可以看到com/test/ui/controller/a.class。問題在這裏,它只是把類級放到ZipEntry中。 – user725455 2015-03-19 11:16:00