将module生成jar,其内部必须只能是java代码。如果还有resource文件,那就得打aar文件了。
在你要打jar包的module build文件中,加上一个生成jar包的task。(其实即使不添加,在整个工程build时也会生成jar文件的。在build/intermediates/bundles/release/classes.jar可以找到。只是没混淆罢了。)
图一
在图1中红箭头标注的文件内加入下面代码:
task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") { delete 'libs/usbSdk.jar' // 未混淆的jar injars 'build/intermediates/bundles/debug/classes.jar' // 混淆后的jar路径 outjars 'libs/usb.jar' // 具体需要keep住的类 configuration 'proguard-rules.pro' }
然后在‘proguard-rules.pro’中,添加如下代码
-libraryjars 'C:\Program Files\Java\jre1.8.0_144\lib\rt.jar' -libraryjars 'E:\Android\sdk\platforms\android-19\android.jar' -optimizationpasses 5 -dontusemixedcaseclassnames # -keep public class * extends android.app.Activity -keep class com.tiannuo.usb_8.* { public <fields>; public <methods>; }
其中:-libraryjars 'C:\Program Files\Java\jre1.8.0_144\lib\rt.jar'和
-libraryjars 'E:\Android\sdk\platforms\android-19\android.ja 分别为jdk的位置和sdk的位置。
‘com.tiannuo.usb_8.*’是module的包名。
最后,在Terminal中输入'gradlew makeJar'。提示“BUILD SUCCESSFUL”成功。
作者:瞎子点灯
链接:http://www.jianshu.com/p/06d9345f4034
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。