将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'//未混淆的jarinjars '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'
-optimizationpasses5
-dontusemixedcaseclassnames
# -keep public class * extends android.app.Activity
-keepclass com.tiannuo.usb_8.* {
public ;
public ;
}
其中:-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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。