2014-01-06 37 views
1

我想在創建一個帶有ant debug的調試版apk時使用ProGruad的開源Android應用程序。我只使用ProGuard的優化,不使用任何代碼混淆設置,即基本上來自$ANDROID_HOME/tools/proguard/proguard-android-optimize.txt的ProGuard配置。即使對於ant調試版本,我如何才能調用ProGuard,僅使用優化設置?

但是,在build.xml中執行-obfuscate任務的ProGuard調用已被debug目標禁用。我如何啓用它?

回答

2

爲了配置Android ant構建系統即使使用debug構建也調用proguard,需要設置兩個變量:proguard.enabledout.dex.jar.input.ref

這是示例配置。將custom_rules.xml文件直接放在您的項目根目錄中。

custom_rules.xml

<project name="android_rules" default="debug"> 
    <!-- Zap debug-obfuscation-check from SDK's build.xml so that it 
     can't set proguard.enabled to false !--> 
    <target name="-debug-obfuscation-check"/> 
    <target name="-pre-build"> 
    <condition property="proguard.enabled" value="true" else="false"> 
     <isset property="proguard.config" /> 
    </condition> 
    <if condition="${proguard.enabled}"> 
     <then> 
    <echo level="info">Proguard.config is enabled</echo> 
    <!-- Secondary dx input (jar files) is empty since all the 
      jar files will be in the obfuscated jar --> 
    <path id="out.dex.jar.input.ref" /> 
     </then> 
     <else> 
    <echo level="info">Proguard.config is disabled</echo> 
     </else> 
    </if> 
    </target> 
</project> 
相關問題