Android studio生成jar文件

今天公司需求把Android代碼打包成jar包提供給其他部門,以前用Eclipse打包過,Android studio倒還是第一次。雖然網上的文章不計其數,但是紙上得來終覺淺,有必要記錄下自己動手的操作過程。

 

1.創建一個工程。

過程就略過了。。。

2.工程中創建一個Android Library。

File->New->New Module 如下圖所示。

 

3.令此工程依賴新建的library。

項目級別gradle (app下的build.gradle)引入該Library。

    //老版本
    //compile project(':buildjar')
    implementation project(':buildjar')

構建一下工程,如果在app文件夾內可以引用到library的方法,即可視爲構建成功。

 

4. 配置gradle腳本。

最蛋疼的步驟。我們需要在library級別的gradle進行修改。

直接附上gradle代碼。

apply plugin: 'com.android.library'

android {
    
    defaultConfig {
    }

    buildTypes {
        release {}
    }

    lintOptions {
        abortOnError false
    }

}

dependencies {}

def SDK_BASENAME = "HEIMA";
def SDK_VERSION = "_V1.0";
def OUTPUT_PATH = "build";
def INPUT_PATH = file('build/intermediates/packaged-classes/release/classes.jar')

//刪除任務
task deleteBuild(type: Delete) {
    delete OUTPUT_PATH + SDK_BASENAME + SDK_VERSION + ".jar"
}

//創建任務
task makeJar(type: Jar) {
    //需要打包的原始classes.jar
    from zipTree(INPUT_PATH)
    //將assets目錄打入jar包
    from fileTree(dir: 'src/main',includes: ['assets/**'])
    //生成文件名字
    baseName = SDK_BASENAME + SDK_VERSION
    //生成
    destinationDir = file(OUTPUT_PATH)
}

makeJar.dependsOn(deleteBuild, build)

注意代碼填寫位置,在android{}和dependencies{}外面。同時這處的代碼有倆種寫法,還有一種是from() 和into(),我沒有試,不做討論。

同時,有坑要注意!關於打包的原始classes.jar的路徑,也就是我定義的INPUT_PATH。不同的Android Studio版本竟然不一致!這個需要自己手動確認下。有的版本可能在'build/intermediates/bundles/release/classes.jar'下。

 

5.運行。

第一步:重新build該project 。

第二步:點開右邊的gradle目錄->other->makeJar 。

6.最後在自定義的路徑下就會生成我們需要的jar包了。親測可用~

 

直接看demo的同學可以直接去我的github下載代碼,省金幣,簡單實用。

GitHub傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章