| // |
| // This Gradle build file illustrates how to process J2ME midlets. |
| // Usage: |
| // gradle -b midlets.gradle proguard |
| // |
| |
| // Tell Gradle where to find the ProGuard task. |
| |
| buildscript { |
| repositories { |
| flatDir dirs: '../../lib' |
| } |
| dependencies { |
| classpath ':proguard' |
| } |
| } |
| |
| // Define a ProGuard task. |
| |
| task ('proguard', type: proguard.gradle.ProGuardTask) { |
| |
| // You should probably import a more compact ProGuard-style configuration |
| // file for all static settings, but we're specifying them all here, for |
| // the sake of the example. |
| //configuration 'configuration.pro' |
| |
| verbose |
| |
| // Specify the input jars, output jars, and library jars. |
| |
| injars 'in.jar' |
| outjars 'out.jar' |
| |
| libraryjars '/usr/local/java/wtk2.5.2/lib/midpapi20.jar' |
| libraryjars '/usr/local/java/wtk2.5.2/lib/cldcapi11.jar' |
| |
| // Preverify the code suitably for Java Micro Edition. |
| |
| microedition |
| |
| // Allow methods with the same signature, except for the return type, |
| // to get the same obfuscation name. |
| |
| overloadaggressively |
| |
| // Put all obfuscated classes into the nameless root package. |
| |
| repackageclasses '' |
| |
| // Allow classes and class members to be made public. |
| |
| allowaccessmodification |
| |
| // On Windows, you can't use mixed case class names, |
| // should you still want to use the preverify tool. |
| // |
| // dontusemixedcaseclassnames |
| |
| // Save the obfuscation mapping to a file, so you can de-obfuscate any stack |
| // traces later on. |
| |
| printmapping 'out.map' |
| |
| // You can keep a fixed source file attribute and all line number tables to |
| // get stack traces with line numbers. |
| |
| //renamesourcefileattribute 'SourceFile' |
| //keepattributes 'SourceFile,LineNumberTable' |
| |
| // You can print out the seeds that are matching the keep options below. |
| |
| //printseeds 'out.seeds' |
| |
| // Preserve all public midlets. |
| |
| keep 'public class * extends javax.microedition.midlet.MIDlet' |
| |
| // Preserve all native method names and the names of their classes. |
| |
| keepclasseswithmembernames,includedescriptorclasses 'class * { \ |
| native <methods>; \ |
| }' |
| |
| // Your midlet may contain more items that need to be preserved; |
| // typically classes that are dynamically created using Class.forName: |
| |
| // keep 'public class com.example.MyClass' |
| // keep 'public interface com.example.MyInterface' |
| // keep 'public class * implements com.example.MyInterface' |
| } |