Android studio生成jar包詳解!!!

有兩種方式:

方式一

1.在你的Moudle中,android{}節點下,添加以下內容:
   //生成jar文件,需要在android{}節點下
    task makeJar(type: Copy) {

        //刪除存在的,有的話刪了,沒有也假裝刪一下~
        delete'libs/nbsdk.jar'

        //從指定文件生成一個jar
        //老版本死丟丟要注意,可能路徑是這樣的:from('build/intermediates/bundles/debug/')
        //或者這樣 :from('build/intermediates/classes/com/')
        from('build/intermediates/packaged-classes/release/')

        //打jar包,jar包所在目錄
        into('build/libs/')

        //篩選,只要這個jar
        include('classes.jar')

        //去掉不需要的內容
        exclude('test/','BuildConfig','R.class')
        //去掉R文件
        exclude{it.name.startsWith('R$');}

        //重命名
        rename ('classes.jar', 'nbsdk.jar')
    }
    //不build一下肯定是不會生成class文件的,所以要加這行
    makeJar.dependsOn(build)
2.執行命令生成:
# Mac是需要 ./ 的,Windows貌似不需要
./gradlew makeJar
3.生成:
BUILD SUCCESSFUL in 11s

路徑

4.注意問題:
  • 1、文件路徑,新老版本有差異,註釋很詳細,自己看
  • 2、生成失敗,提示如下:
> Task :nBSDK:lint FAILED

FAILURE: Build failed with an exception.
  • 解決:
    //加個這玩意,忽略錯誤
    //當然最理想的是你把錯誤解決了最美麗
    lintOptions {
        abortOnError false
    }

    //生成jar文件,需要在android{}節點下
    task makeJar(type: Copy) {
    ...
    }

方式二

1.將Moudle打成aar
2.將aar後綴改成zip,解壓取出classes.jar文件
3.注意事項
  • 這種直接取出來的,一般會多一個BuildConfig.class類,此類是自動生成的,具體不做介紹了,大家看看就好:
public final class BuildConfig {
  public static final boolean DEBUG = false;
  
  public static final String APPLICATION_ID = "com.abc.cde";//實際是你的AndroidManifest.xml文件中配置的package="com.abc.cde"
  
  public static final String BUILD_TYPE = "release";
  
  public static final String FLAVOR = "";
  
  public static final int VERSION_CODE = 1;
  
  public static final String VERSION_NAME = "1.0";
}
  • 一般可以刪掉jar中的BuildConfig.class類,你們自己試吧,我的不需要R引用,直接刪了的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章