<target name="optimize" unless="no-optimize">
<mkdir dir="optimized"/>
<property name="libraryjars.path" refid="android.target.classpath"/>
- <java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">
+ <java jar="${proguard-jar}" fork="true" failonerror="true">
<jvmarg value="-Dmaximum.inlined.code.length=48"/>
<arg value="-injars ${out-classes}"/>
<arg value="-outjars optimized"/>
<arg value="-keep class com.google.zxing.client.android.*Activity"/>
<arg value="-keep class com.google.zxing.client.android.ViewfinderView { public * ; }"/>
<arg value="-keep class com.google.zxing.client.android.book.SearchBookContents* { public * ; }"/>
+ <!-- This works around some strange Android/ProGuard problem verifying MaskUtil -->
+ <arg value="-keep class com.google.zxing.qrcode.encoder.MaskUtil { public * ; }"/>
<arg value="-target 5"/>
- <arg value="-optimizationpasses 4"/>
+ <!-- Keeping this low also avoids some weird Android/ProGuard issue I couldn't resolve otherwise -->
+ <arg value="-optimizationpasses 2"/>
<arg value="-dontshrink"/>
<arg value="-dontobfuscate"/>
<arg value="-dontskipnonpubliclibraryclasses"/>
<jarfolder path="${external-libs-folder}" />
<nativefolder path="${native-libs-folder}" />
</apkbuilder>
+ <copy file="${out-folder}/BarcodeScanner-debug.apk" tofile="${out-folder}/temp.apk" overwrite="true"/>
+ <exec executable="${android-tools}/zipalign">
+ <arg value="-f"/>
+ <arg value="-v"/>
+ <arg value="4"/>
+ <arg value="${out-folder}/temp.apk"/>
+ <arg value="${out-folder}/BarcodeScanner-debug.apk"/>
+ </exec>
</target>
<!-- Package the application without signing it.
<nativefolder path="${native-libs-folder}" />
</apkbuilder>
<echo>All generated packages need to be signed with jarsigner before they are published.</echo>
+ <echo>Also run zipalign -f -v 4 BarcodeScanner.apk BarcodeScanner-aligned.apk after signing</echo>
</target>
<!-- Install the package on the default emulator -->