1. 程式人生 > >打包和依賴 AAR 檔案

打包和依賴 AAR 檔案

一、打包 aar

1、單個模組打包

  1. 開啟 Gradle 工具視窗,找到 Android Library 模組. 在 build 任務中雙擊 assemble.

  2. 執行成功後,在 mylibrary/build/outputs/aar 目錄下找到 aar 包.

預設 DebugReleaseAAR 包都會打出來,當然你也可以選擇只打 Debug 的包,雙擊 assembleDebug 任務就可以了. 只打 Release 的包同理.

2、多個模組打包

當要打包的模組又依賴了其它幾個模組時,常常需要把它們打包成一個 aar。多模組打包使用 fat-aar,打包關鍵步驟如下:

  1. 將下載好的 fat-aar.gradle

    檔案新增到對應的模組目錄中,並在 build.gradle 中引入 apply from: 'fat-aar.gradle'。或直接引用 apply from: 'https://raw.githubusercontent.com/adwiv/android-fat-aar/master/fat-aar.gradle'

  2. 新增要打包的工程,使用 embedded 關鍵字。示例程式碼如下:

    apply from: 'fat-aar.gradle'
    dependencies {
        ...
       embedded project(':DynamicPageLibrary')
       embedded project(':VideoPlayerLib'
    ) embedded project(':AudioPlayLibrary') embedded project(':BaseCloudMusicResource') }
  3. 步驟同上《單個模組打包》一致。

二、引入 aar

方法一、通過 libs 引入到 app 中

  1. aar 檔案放在 libs 目錄下

  2. appbuild.gradle 中新增如下內容

    repositories {
        flatDir {
            dirs 'libs' 
        }
    }
  3. 之後通過如下方式引入

    dependencies {
        compile(name:'test'
    , ext:'aar')
    }
  4. Rebuild project

  5. 如果發現引入後無法使用,重啟 Android studio

方法二、把 aar 作為一個庫工程的方式引入

當專案中庫工程較多且依賴關係比較複雜時,最好採用這一種方式。如:某一個庫工程也要引入這個 aar 時。

選單欄 -> File -> New -> New Module

-> Import .Jar/.AAR Package

-> Next

-> 選擇 File name 的檔案 -> Subproject name 命名工程

-> Finish

建立完成後是一個工程,工程中包括 aar 檔案和 build.gradle 檔案。build.gradle 檔案內容如下:

configurations.create("default")
artifacts.add("default", file('musiclibrary_20170622.aar'))

選擇和命名 AAR

三,遇到的問題

  1. Non-constant Fields in Case Labels

    原因:在 Android Library 中不能使用 switch case

    解決:改成用 else if,如下圖:

    switch 快速轉成 else if

  2. java.lang.IllegalArgumentException: No view found for id 0x7f0d013d () for fragment TestFragment

    描述:在專案中引用了庫裡的 fragment,在執行後丟擲了找不到 view 的異常。但是在 Demo 專案中執行是沒有問題的。

    原因:庫裡 fragmentlayoutID 與專案中另外一個 FragmentlayoutID 名字相同,導致專案中的佈局會覆蓋庫中的佈局。

    解決:修改為不同的名稱。在庫中要注意資源名稱可能與專案同名的問題,比如在庫中的資原始檔都新增字首或字尾,或較長不容易重複的名字。同名的資原始檔只會存在一個,根據庫的巢狀關係,外層會覆蓋內層的資原始檔。

相關推薦

打包依賴 AAR 檔案

一、打包 aar 1、單個模組打包 開啟 Gradle 工具視窗,找到 Android Library 模組. 在 build 任務中雙擊 assemble. 執行成功後,在 mylibrary/

打包依賴.aar檔案以及坑總結

一、打包aar 1、單個模組打包 開啟Gradle工具視窗,找到Android Library模組. 在build任務中雙擊assemble. 執行成功後,在mylibrary/build/

Android 打包上傳AAR檔案到本地Maven倉庫並且引用

1.前言 建議電腦端觀看,多圖慎入 平常專案中遇到的一些公共元件,公共模組,多個專案都在使用的情況下,我們一般有以下幾種做法 1.整個module匯入工程,如果module中有什麼bug,修改了還要其他專案再重新新增進去,很不方便 2.module打包A

Android Studio中架包打包依賴衝突解決

一、為什麼使用aar打包,而不是jar 隨著Android Studio的使用越來越廣泛,使用aar打包這種方式也越來越可行實際。 jar打包只打原始碼,像資原始檔不會打包,而aar恰恰是jar打包的補充完善,它會把程式碼和資源統統打包進一個檔案。 二

Android引入 打包AAR 檔案

引入 aar 方法一、通過 libs 引入到 app 中 把 aar 檔案放在 libs 目錄下 在 app 的 build.gradle 中新增如下內容 repositories {     flatDir {         dirs 'libs'      }

使用WinRar將Qt編譯生成的exe依賴的dll檔案打包為一個exe檔案的簡單方法

如題,需要將QtCreator編譯生成的*.exe檔案和它所依賴的動態連結庫(*.dll)檔案打包為一個exe檔案,步驟如下: (1)將編譯生成的AppTest.exe、依賴的庫檔案、圖示檔案等複製到一個新建的資料夾下,如圖: (2)選中所有檔案,滑鼠右鍵,選擇”新增到壓

Android Studio生成引用.aar檔案

先來句綜述:.aar和.jar庫檔案的區別 aar 檔案是建立在 jar 檔案的基礎之上, aar 是 jar 檔案的一個變種。其實他們本質上沒有什麼區別,都是壓縮包,只是能包含的內容不一樣。 jar只包含了class檔案與清單檔案。雖然也能包含資原始檔,但不過是文字資

linux 打包壓縮檔案 相關命令

bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的檔案  bzip2 file1 壓縮一個叫做 'file1' 的檔案  gunzip file1.gz 解壓一個叫做 'file1.gz'的檔案  gzip file1 壓縮一個叫做 'file1'的檔

(12/24) css進階:sass檔案打包分離

1.安裝sass打包的loader 這裡需要 在專案目錄下用npm安裝兩個包。node-sass和sass-loader,(也可以使用cnpm安裝) 因為sass-loader依賴於node-sass,所以需要先安裝node-sass 1.1 node-sass npm install --s

IDEA常見問題之不能正確打包讀取到配置檔案xml、properties、conf等

1.不能讀取到一些資料夾下的檔案(pom檔案的引入) <build>     <resources>         <resource>             <directory>src/main/java</di

Android打包aar檔案上傳到JCenter倉庫指南

目錄 說明 操作步驟 總結: 說明 為什麼要將包上傳到JCenter呢?  我們日常開發中,對於一些公共的元件總是打成jar包或aar包來提高利用性,但是如果多個專案中要用到這些jar包就需要將jar包copy到每一個專案中,非常麻煩。 An

分析一個依賴檔案順序有關的連結錯誤

makefile檔案如下: main: main.c lib/libfoo.so     gcc -g -Wall -o main -Wl,-rpath='$$ORIGIN/lib' -L ./lib -lfoo main.c lib/libfoo.so: lib/foo

Android專案將module打包aar檔案

fat-aar.gradle檔案下載地址: https://github.com/adwiv/android-fat-aar 2.修改build.gradle 在build.gradle中新增:apply from: 'fat-aar.gradle', 注意:這句話要寫在dependencies之上。 之

Android Studio中將moudle專案打包aar檔案

轉載:https://blog.csdn.net/cangahi09025566/article/details/80278129 為了方便以後好尋找,轉載一篇文章 在android開發中,我們有時候需要將一個專案作為一個依賴,並且能夠使用其資原始檔和介面,這個時候就需要將我們建立的moud

axis2 webService開發(打包aar檔案

 本文主要是根據他的文章和自己實際開發中遇到的一些問題得出的,你也可以檢視原文          安裝好axis容器、eclipse axis2外掛後就可以用打包aar檔案方式釋出web s

Android 將Android專案打包aar檔案並在其他專案中引用,打包成jar包

首先說一下jar包和aar包有什麼區別? 1.打包之後生成的檔案地址: *.jar:庫/build/intermediates/bundles/debug(release)/classes.jar *.aar:庫/build/outputs/aar/l

idea中的spring boot maven專案的依賴pom.xml檔案不一致的解決辦法

今天用idea建立了一個spring boot專案,包含了spring security,在pom檔案和專案依賴都存在security依賴的情況下,對專案的訪問連結都會跳轉到輸入賬號密碼的驗證登入頁面,程式碼和跳轉如下:   為了驗證security的

android studio打包生成aar檔案並在其他工程引用aar

轉自:http://blog.csdn.net/getchance/article/details/47257389 第一次抄,抄的不好見諒! 一  aar的含義 aar是Android studio下打包android工程中src、res、lib後生成的aar檔案,aar

Maven系列(八)assembly打包-程式依賴jar包分開化+多環境

前言 上一篇介紹的是“assembly打包-程式和依賴jar包分開化”的配置方法, 這一篇就來介紹下如何多環境的配置,這裡請看清楚,是“程式和依賴jar包分開化+多環境”跟之前的不太一樣哦。 需要修改的配置 專案的目錄結構 pom 新增

Android Studio專案打包AAR,以及專案中嵌入AAR檔案,過程中出現R檔案報錯的坑

這幾天接到新需求,將ec專案嵌入到公司as總專案中,第一次搞,弄了好久,才搞定,入正題. 首先將ec專案匯入as中,解決各種報錯,比如png圖片,.9圖,以及各種不規範的log,吐死之類的,不細說,這個不難. 將專案遷移到AS中,成功執行,OK,開始打包AAR,打包AAR不