2014-04-28 160 views
1

後,我有不同的「命名空間」幾個功能(包,類左右),即:函數名稱混淆

com.example.class1.foo1() 
com.example.class1.foo2(string); 
com.example.class1.foo3(); 
com.example.sth.class1.foo1(); 
com.example.sth.class2.foo1(); 

混淆後,我目前的設置,我得到某物像:

com.example.a.a() 
com.example.a.a(string) 
com.example.a.b() 
com.example.sth.a.a() 
com.example.sth.b.a() 

這是除了一兩件事都好:在com.example.a 2種a方法。有沒有什麼辦法可以讓proguard在一個類中給不同的函數賦予不同的名字?

+2

這有什麼問題?這些方法有不同的簽名,所以他們無論如何都會工作。 –

+1

你真的想用這個做什麼? – bobbel

+1

@FD_從我的診斷系統中獲取有關錯誤的信息。在那裏我沒有完整的簽名,只是功能名稱。如果我有15個方法'a',則很難調試。 – Ari

回答

0

正確的解決方案是保留有關行號調試信息:

-keepattributes SourceFile,LineNumberTable 
-renamesourcefileattribute SourceFile 

你也可以讓ProGuard的使用不同的名稱:

-useuniqueclassmembernames 

但這並不迴避已經存在名稱超載。