2017-07-04 42 views
0

當我構建我的應用程序時,我看到一些軟件包名稱不會混淆。我認爲這些軟件包有一些@Keep註解類。我想要包名手動。例如:Android Proguard手動更改軟件包名稱

proguard的-rules.txt

-applymapping mapping.txt 

的mapping.txt

com.data.Net -> com.data.Q 

我試過,但它不工作。這不可能嗎?

回答

0

ProGuard沒有標準選項來重命名包,但保留了簡單的類名。

您可以手動創建的ProGuard映射文件,用線,如:

com.example.MyClass -> a.MyClass: 
com.example.MyOtherClass -> a.MyOtherClass: 

然後,您可以使用該選項-applymapping的mapping.txt

+0

謝謝你。 (MyClass有GSON序列化/反序列化操作@keep註釋)當我這樣做你的意見時,我再次看到com.example.MyClass不a.MyClass。 Mapping.txt的位置和proguard-rules是一樣的嗎? – kibar

+0

@kibAr據我瞭解您的評論,映射位置不一樣。它應該在應用程序內的** build/outputs/mapping/release **文件夾中。 –

+0

當我更改mapping.txt位置時,出現異常'警告:處理任務java.io.FileNotFoundException時發生異常:C:\ Proj \ qweqwe \ mapping.txt(找不到文件) 錯誤:執行任務失敗': qweqwe:transformClassesAndResourcesWithProguardForRelease」。 >作業失敗,請參閱日誌以瞭解詳情 – kibar

相關問題