Androidstudio 打包aar 無法引用類庫中 dependencies 遠程依賴

在網上看到一些Androidstudio 打包生成aar的方法:

  • 界面操作

  • 命令行操作
gradle clean build

以上兩種方法,前提Module是Library,調用系統build重新構建工程,完成後會在Module 模塊下build---->outputs 目錄中輸出aar 類庫文件.

 

但是對於aar類庫中包含dependencies 遠程依賴的情況下,會出現無法調用類庫的中依賴工程

例:aar類庫中包含遠程依賴volley, 此時按照如上方法打包出的aar,在目標工程中是無法調用volley使用的

compile 'com.mcxiaoke.volley:library:1.0.19'

 

解決方案:

  • 創建本地Maven 倉庫,並生成可用aar 類庫

  在Library工程中build.gradle 文件中添加如下代碼,使用命令行執行 gradle uploadArchives 

  repository url 路徑可自定義

  version   是 Library 版本

  artifactId 是 Library 名稱

  groupId  是 Library 包名

  packaging 類庫類型

  description 描述

  

apply plugin: 'maven'
uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            repository(url: "file://localhost/"+"Users/kevinbai/Desktop")
            pom.project {
                version '1.0.0'
                artifactId 'mcdnb'
                groupId 'com.payment.nb'
                packaging 'aar'
                description 'mcdnb'
            }
        }
    }
}

 

完成後,會在如上指定目錄URL(Users/kevinbai/Desktop) 中生成如下文件

 

此時的mcdnb-1.0.0.aar 就是我們需要的aar 類庫.

 

正確的使用方法:

1.在項目最外層build.gradle 文件中添加如下代碼(路徑與之前生成路徑保持一致)

allprojects {
    repositories {
        jcenter()
        maven{  url "file://Users/kevinbai/Desktop"}
    }
}

2.在module build.gradle 文件中直接引用

  格式 :pom.groupId  :  pom.artifactId  :  pom.version 

  示例 :

compile 'com.payment.nb:mcdnb:1.0.0'

 

  • 創建遠程Maven倉庫,生成aar類庫  @TODO

   創建Maven遠程倉庫方法省略

   

使用aar 類庫方法(此方法不解決以上問題,切勿使用)

1. libs文件夾下引用方法

 

Androidstudio 打包jar類庫

在build.gradle 文件中添加如下代碼,在工程目錄下執行 gradle buildLib,  之後xxx.jar會在Module 根目錄中生成

//定義一個函數,target是生成jar包的文件名,classDir是class文件所在的文件夾
def makeJar(String target,String classDir){
    exec{
        executable "jar"   //調用jar
        args "cvf",target
        args "-C", classDir
        args "","."
    }
}

//新建一個task,名爲buildLib,依賴build(build是一個自帶的task)
task buildLib(dependsOn:['build'])<< {
    makeJar("xxx.jar","build/intermediates/classes/release")
}

 

 

 

發佈了12 篇原創文章 · 獲贊 10 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章