❶ android Studio中編譯aar release版本簡便方法
在Android Studio中編譯aar時,通常Build之後是Debug版本。
有網友提出添加了Release選項也無濟於事:
其實,在控制台中輸入gradlew assembleRelease指令即可生成,如下圖所示,Mac上,AS的Terminal中生成aar Release包。
❷ android 怎樣將mole打包成aar
1.aar包是Android studio下打包android工程中src、res、lib後生成的aar文件,aar包導入其他android studio 工程後,其他工程可以方便引用源碼和資源文件
2.生成aar包步驟:
①.用android studio打開一個工程,然後新建一個Mole,新建Mole時候選擇Android Library,後面按新建普通工程操作
②.新建Mole 類型為android Library 後如下圖所示
③.在新建的Mole中編寫完代碼後,接下來編譯整個工程後就會自動生成aar包,包的路徑在新建的Mole ==》 build ===》outputs ==>aar目錄下。 如圖
3.其他androidstudio工程引用aar包
①.將aar包復制到lib目錄下
②.配置build.gradle文件:
加入
repositories {
flatDir {
dirs 'libs'
}
compile(name:'camerascan-1.0', ext:'aar')
完整的配置文件:
[java] view plain
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.geenk.testcamerascanarr"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'camerascan-1.0', ext:'aar')
compile 'com.android.support:appcompat-v7:22.2.0'
}
❸ 如何創建Android庫以及Android aar文件詳解
創建 Android 庫
Android 庫在結構上與 Android 應用模塊相同。它可以提供構建應用所需的一切內容,包括源代碼、資源文件和 Android 清單。不過,Android 庫將編譯到您可以用作 Android 應用模塊依賴項的 Android 歸檔 (AAR:Android Archive Resource) 文件,而不是在設備上運行的 APK。與 JAR 文件不同,AAR 文件可以包含 Android 資源和一個清單文件,這樣,除了 Java 類與方法外,您還可以捆綁布局和可繪制對象等共享資源。
庫模塊在以下情況下非常有用:
構建使用某些相同組件(例如 Activity、服務或 UI 布局)的多個應用。
構建存在多個 APK 變體(例如免費版本和付費版本)的應用並且需要在兩種版本中使用相同的核心組件。
在任何一種情況下,只需要將您希望重用的文件移動到庫模塊中,然後以依賴項的形式為每個應用模塊添加庫。本頁面將說明如何執行這兩個操作。
創建庫模塊
要在您的項目中創建一個新的庫模塊,請按以下步驟操作:
1、點擊** File > New > New Mole。**
2、在出現的 Create New Mole 窗口中,依次點擊** Android Library 和 Next。還存在一個用於創建 Java 庫的選項,可以構建傳統的 JAR 文件。盡管 JAR 文件在大多數項目中都非常實用(尤其在您希望與其他平台共享代碼時),但這種文件不允許您包含 Android 資源或清單文件,而後者對於 Android 項目中的代碼重用非常有用。**因此,本指南將側重論述創建 Android 庫。
3、為您的庫命名,並為庫中代碼選擇一個最低的 SDK 版本,然後點擊 Finish。
在 Gradle 項目同步完成後,庫模塊將顯示左側的 Project 面板中。如果您未看到新模塊文件夾,請確保將視圖切換為 Android 視圖。
將應用模塊轉換為庫模塊
如果您現有的應用模塊包含您希望重用的所有代碼,則可以按照以下步驟將其轉換為庫模塊:
1、打開現有應用模塊的 build.gradle 文件。您應在頂部看到以下內容:
2、按照下面所示更改插件分配:
3、點擊 Sync Project with Gradle Files。
就這么簡單。模塊的整個結構仍然相同,但是現在它將作為 Android 庫運行,構建也將創建一個 AAR 文件,而不是 APK。
生成aar
在Android Studio1.4中,New project,先默認新建一個Applicaton mole,接後File > New > New Mole,選擇Androd Library > Next,指定Library Name和Mole Name。
新建的Library與正常的Application最大區別是mole build.gradle中是**apply plugin: 『com.android.library』 **而不是 apply plugin: 'com.android.application'
Build > Make project,自動生成aar文件。
以依賴項形式添加您的庫
要在另一個應用模塊中使用您的 Android 庫的代碼,請按以下步驟操作:
1、通過兩種方式之一將庫添加到您的項目(如果您是在相同項目中創建的庫模塊,則該模塊已經存在,您可以跳過此步驟):
添加已編譯的 AAR(或 JAR)文件:
1、點擊 File > New Mole。
2、依次點擊 Import .JAR/.AAR Package 和** Next**。
3、輸入 AAR 或 JAR 文件的位置,然後點擊 Finish。
將庫模塊導入到您的項目中:
1、點擊** File > New > Import Mole。**
2、輸入庫模塊目錄的位置,然後點擊 Finish。
庫模塊將復制到您的項目中,因此您可以盡管編輯庫代碼。如果您希望維護一個版本的庫代碼,則此方法可能不是您想要的,您應按照上文所述導入編譯的 AAR 文件。
2、確保庫列在您 settings.gradle 文件的頂部,如下面名為「my-library-mole」的庫所示:
3、打開應用模塊的 build.gradle 文件,並向 dependencies 塊中添加一行新代碼,如下面的片段所示:
4、點擊 Sync Project with Gradle Files。
在上面的示例中,名為 my-library- mole 的 Android 庫模塊成為 build.gradle 文件所在模塊的構建依賴項。
您的應用模塊現在可以訪問 Android 庫中的任何代碼和資源,庫 AAR 文件在構建時已捆綁到您的 APK 中。
不過,如果希望單獨共享 AAR 文件,則可以在 項目名稱/模塊名稱/build/outputs/aar/ 中找到它,也可以通過點擊 Build > Make Project 的方式重新生成此文件。
選擇要設為公開的資源
庫中的所有資源在默認情況下均處於公開狀態。要將所有資源隱式設為私有,您必須至少將一個特定的屬性定義為公開。資源包括您項目的 res/ 目錄中的所有文件,例如圖像。要阻止您的庫用戶訪問僅供內部使用的資源,您應通過聲明一個或多個公開資源的方式來使用這種自動私有標識機制。
要刪除某個公開資源,請將一個聲明添加到您的庫的 public.xml文件中。如果您之前尚未添加公開資源,則需要在您的庫的 res/values/目錄中創建public.xml 文件。
下面的示例代碼可以創建兩個名稱分別為 mylib_app_name和 mylib_public_string 的公開字元串資源:
android {
defaultConfig {
consumerProguardFiles 'lib-proguard-rules.txt'
}
...
}
dependencies {
debugCompile project(path: ':library', configuration: 'debug')
releaseCompile project(path: ':library', configuration: 'release')
}
android {
...
publishNonDefault true
}```
不過請注意,設置 publishNonDefault會增加構建時間。
為了確保您的庫的 ProGuard 規則不會將意外的壓縮副作用施加到應用模塊,請僅包含適當規則,停用不適用於此庫的 ProGuard 功能。嘗試協助開發者的規則可能會與應用模塊或它的其他庫中的現有代碼沖突,因此不應包含這些規則。例如,您的庫的 ProGuard 文件可以指定在應用模塊的壓縮期間需要保留的代碼。
註:Jack 工具鏈僅支持 ProGuard 的部分壓縮和模糊選項。
AAR 文件詳解
AAR 文件的文件擴展名為 .aar,Maven 工件類型也應當是 aar。文件本身是一個包含以下強制性條目的 zip文件:
/AndroidManifest.xml
/classes.jar
/res/
/R.txt
此外,AAR 文件可能包含以下可選條目中的一個或多個:
/assets/
/libs/**名稱 **.jar
/jni/abi 名稱 /名稱.so(其中 abi 名稱是 Android 支持的 ABI 之一)
/proguard.txt
/lint.jar
❹ uniapp安卓aar插件問題
Android插件在application中初始化了很多東西,如果生成aar包提供給前端,讓前端進行雲打包,那麼Android在application中所初始化的東西將會失效,因為雲打包,我們無法控制讓他載入我們的application。Android插件依賴了很多第三方的aar包,如果把插件打成aar包,那麼插件依賴的第三方aar包將無法和插件打包成一個aar文件,就會導致插件中很多類和文件找不到uniapp前端配置文件中可以依賴於maven倉庫,但是uniapp的maven僅限於jcenter和aliyun名下的才能引用。
❺ android studio aar怎麼用
一. 簡介
aar是一個類似於jar的文件格式。但是他們之間是有區別的。
jar:僅僅包含class和清單文件,沒有資源文件。
aar:包含了class文件和資源文件。說白了就是Android的專屬「jar」
將代碼打包成aar文件,可以在一定程度上加快AndroidStudio的速度。
尤其是將Mole打包成aar文件,提升的效果很顯著。
二. 如何得到aar
1. Mole的aar文件
將一個AndroidStudio項目中的Mole打包成aar其實很簡單。
在每一個Mole的目錄下面都會有這樣一個文件夾:build\outputs\aar。
這個文件夾下面就放著這個Mole對應的aar文件。
一般情況下會有兩個aar文件,一個debug版本,一個release版本。
我們選擇release的就ok。
注意:
新建的Mole是沒有這個文件夾的。這時,你可以使用 兩種方法 生成這個文件夾
將整個項目運行一遍,這個文件夾會自動生成
執行命令 ./gradlew assembleRelease 也可以生成這個文件夾
Mole中的libs目錄文件會隨著項目的編譯被打包進aar文件中,但是build.gradle中的引用庫不會打包進aar文件中,這個需要 特別留意。如果你忽略了這個Mole的build.gradle中的引用庫,很可能引發ClassNotFoundException異常。
2. 遠程倉庫的aar
在項目裡面經常會引用一下遠程倉庫的依賴庫。
這時,我們也可以將它以aar的形式引入到項目中。
這個依賴庫的aar其實也很好找。
當你配置好一個依賴庫以後,點擊 Sync Now 。
AndroidStudio會自動下載這個庫到C盤(windows)。你找到這個文件就可以了。
這里我使用的是Everything進行搜索,很方便就找到這個庫的下載文件夾。其他操作系統就自行搜索吧,總之找見這個項目的下載文件夾就ok。
這個下載文件夾中包含了這個項目所需要的所有東西:包括aar、jar等文件。
後面會以一個例子詳細講解這個過程
註:
Everything是一個搜索軟體,可以瞬間搜索全盤。
是一個非常實用的軟體。但是很可惜只有windows版本。
官網地址:<a href="<a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a>" target="_blank"><a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a></a>
三. 如何使用aar
想要使用aar文件,需要經過以下幾步:
1. 在app的build.gradle中加入以下配置
repositories {
flatDir {
dirs 'libs' // aar目錄
}
}
2. 將aar文件拷貝到app/libs目錄下
3. 在dependencies中加入aar引用
compile(name: 'zbar-release', ext: 'aar')
四. LeakCanary項目示例
因為Mole的例子比較簡單,所以選擇遠程代碼庫作為示例。
這里使用一個經常使用的內存檢測項目LeakCanary來做一個示例。
我們通常使用依賴來使用這個庫:
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
當Sync Now完成後,我們可以在C盤(windows)找見這個項目文件夾。
這個文件夾下面就有我們需要的兩個依賴庫:leakcanary-android和leakcanary-android-no-op
點開leakcanary-android文件夾,目錄結構如下(1.3是對應的版本號):
leakcanary-android文件夾
打開最里層的文件夾,你會發現文件的類型主要有三種:
jar文件:有的項目是以jar文件形式提供
aar文件:有的項目是以aar文件形式提供
pom文件: (Project Object Model),實際上就是個xml,是對一些必要信息的說明。這里我們只關心一個節點信息:<dependencies>:聲明依賴列表
我們用文本編輯器打開leakcanary-android文件夾下面的pom文件:
...
<dependencies>
<dependency>
<!--包組 id,通常是發布者擁有的域名的反向,以免跟別人的重復-->
<groupId>com.squareup.leakcanary</groupId>
<!--包 artifactId,其實就是組以下應該有一個更小的歸類-->
<artifactId>leakcanary-analyzer</artifactId>
<!--版本號-->
<version>1.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
..
當我們打開leakcanary-android的pom文件,
我們發現leakcanary-android依賴於leakcanary-analyzer的1.3版本。
同樣的的我們打開leakcanary-analyzer 的pom文件,
發現leakcanary-analyzer依賴leakcanary-watcher和haha。
leakcanary-watcher和haha則沒有依賴任何東西。
這樣整個leakcanary-android導入本地的東西就是四個:
leakcanary-android
leakcanary-analyzer
leakcanary-watcher
haha
同樣的方式去一層一層解析leakcanary-android-no-op,將所有需要的文件都導入到AndroidStudio中。這樣整個LeakCanary就被我們真正實現本地化了。
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
debugCompile(name: 'leakcanary-android-1.3', ext: 'aar')
compile files('libs/leakcanary-analyzer-1.3.jar')
compile files('libs/leakcanary-watcher-1.3.jar')
compile files('libs/haha-1.1.jar')
releaseCompile(name: 'leakcanary-android-no-op-1.3', ext: 'aar')
這樣就將整個LeakCanary項目完全轉換成了本地的依賴。
❻ 如何將android studio整個工程編譯成aar
要輸出aar文件,必須將Mole配置為library,在gradle文件中如下:輸出aar:applyplugin:'com.android.library';輸出apk:applyplugin:'com.android.application'。將Mole配置為library後,構建輸出一個aar文件,根據渠道和BuildType的不同,在相應的目錄下可以找到。比如對BuildType為debug的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份aar文件其實就是一份zip包,和jar不同的是,它將一些資源文件、第三方庫文件、so文件等等都打包在內,而代碼文件編譯後壓縮在在classes.jar中。比如:3、導入aar的方式引用這種方式比較簡單,打開ProjectStructure,添加一個新Mole,然後選擇Import*.JARor*.AARPackage的方式導入:導入後,在你的工程下面,會生成一個文件夾,裡面是aar文件以及AndroidStudio的配置文件。接著可以在gradle中配置依賴了,其他Mole可以引用這個Mole了,依賴方式使用compileproject的方式即可。缺點:被依賴的aar無法F3跟進去,無法看到資源文件內容以及目錄層級等等缺陷。4、使用配置依賴的方式引用gradle其實還有另一種依賴可以引用aar:compile(name:'xxx',ext:'aar')。首先需要將aar文件放入引用Mole的libs目錄下,和一般的jar文件類似。然後在gradle配置文件中把libs目錄加入依賴:?12345repositories{flatDir{dirs'libs'}}接著在gradle的依賴配置中加入compile(name:'xxx',ext:'aar')這一句,依賴即可關聯完畢。構建一下工程,在Mole的build/intermediates/exploded-aar目錄下,可以看到有一些臨時文件生成:看起來完全是引用aar的解壓版本。AndroidStudio安裝反編譯插件後,可以通過F3跟進到class文件裡面,如果你有被依賴Mole的源代碼的話,還可以AttachSource關聯源代碼查看。另外,可以很方便的查看aar中的資源文件。另外,這種依賴方式更新aar後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。
❼ Android Studio如何使用aar依賴包
ps:2013-12-25 號更新,升級到0.4以後 這種方法已經完美使用!
因為項目裡面要用到actionbarsherlock,所以研究了一下如何導入到android studio中。
arr(Android Archive):名字是谷歌到的,至於中文叫什麼我也不知道。不過好像依賴都要使用這樣的包了。
首先說明我使用的android studio 版本是3.1.因為現在android studio的bug還不較多,所以你的版本能不能正常使用我就不敢說了。
如果你只是單純的想使用actionbarsherlock的話,引用是十分簡單的
復制代碼
代碼如下:
dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}
然後重新編譯一下項目就行了。(ps 這兩天看見群裡面都在討論引用第三方jar包,請看我的第一行注釋,你只要新建一個libs的文件夾,然後把想要jar包復制到文件夾下,接著把注釋那句復制到build文件中,修改一下(*.aar -> *.jar)就可以了)
但是我們要是使用本地的aar文件,我谷歌了兩天總算是勉強能用了,請看我的實現過程,如果你有更好的請轉告小弟共同進步
第一步 :生成aar文件
我的方法是通過maven-android-plugin來生成的,如果你使用過actionbarsherlock以前的版本的話,這個工具應該不陌生,如果你連maven 都不知道的話,建議好好學習一下maven,雖然現在gradle很火 ,但是我還是最喜歡maven。
關於具體生成步驟不久不詳細說了,文章最後貼出幾個網址供大家學習使用,放心我按順序給你們,只要一步一步的來絕對能成功
1、把你的maven版本提升到3.1.1
2、去github上clone下來 maven-android-sdk-deployer 這個項目https://github.com/mosabua/maven-android-sdk-deployer,按照使用說明安裝android的版本
3、通過maven-android-plugin生成一個android項目
復制代碼
代碼如下:
mvn archetype:generate /
-DarchetypeArtifactId=android-quickstart /
-DarchetypeGroupId=de.akquinet.android.archetypes /
-DarchetypeVersion=1.0.11 /
-DgroupId=your.company /
-DartifactId=my-android-application
4 修改pom
復制代碼
代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.study.android</groupId>
<artifactId>NiMa</artifactId>
<packaging>aar</packaging>
<name>NiMa</name></p><p> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.0</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
<path>E:/android_work/sdk/</path>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
這是我的pom,打包類型改成aar,插件改成3.8版本,添加ANDROID_HOME到path。
5 執行 mvn install ,這樣我們就得到了aar文件,和aar-class.jar文件,其實aar文件裡麵包含class.jar文件,但是我目前的版本必須手動導入到android studio中,這就是不完美之處。
第二步 導入到android studio中 創建libs文件夾,放入想要導入的文件
1 修改build.gradle ,依然是給出我的大家可以按照自己的項目對比修改
復制代碼
代碼如下:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'</p><p>repositories {
mavenLocal()
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"</p><p> defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
}
dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.jayway.maven.plugins.android.generation2.samples.libraryprojects:aar-lib1:1.0.0@aar'
//compile 'com.lee.study.android:NiMa:0.0.1@aar'
compile 'com.android.support:support-v4:18.0.+'
}
android {
compileOptions.encoding = "UTF-8"
}
repositories 添加了 flatDir , dependencies 裡面添加了 依賴的aar文件。
如果你做到這一步,重新編譯一下依賴就添加好了,我目前的版本添加完了aar訪問aar中的資源文件是不成問題的,但是不能訪問到aar中的類文件。如果你和我一樣不幸的話,請看下一步
2 手動的添加class.jar文件到android -studio,選中項目F4 ,手動添加依賴 jar到項目,看圖片
如果這一步你也搞定了,恭喜你就能和我一樣使用依賴了
Toast 顯示的內容是依賴包中的一個靜態方法返回的文本內容。
最後關於maven 如果搭建android項目的網址,按順序看就可以
https://code.google.com/p/maven-android-plugin/
http://stand.spree.de/wiki_details_maven_archetypes
http://javacan.tistory.com/198
❽ 如何製作一個android studio的aar依賴包
首先說明咱使用的android studio
版本是0.4.因為現在android studio的bug還不較多,所以版本能不能正常使用就不敢說了。
如果只是單純的想使用actionbarsherlock的話,引用是十分簡單的dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}
不過官方也出了一個兼容包,也非常的不錯。so 沒必要非得要使用actionbarsherlock。
然後重新編譯一下項目就行了。(ps
引用第三方jar包,請看第一行注釋,只要新建一個libs的文件夾,然後把想要jar包復制到文件夾下,接著把注釋那句復制到build文件中,修改一下(*.aar
-> *.jar)就可以了)。
但是要是使用本地的自定義的aar文件,請看實現過程
第一步 :生成aar文件
方法是通過maven-android-plugin來生成的,如果使用過actionbarsherlock以前的版本的話,這個工具應該不陌生,如果連maven
都不知道的話,建議好好學習一下maven,雖然現在gradle很火 ,但是個人還是最喜歡maven。
關於具體生成步驟不久不詳細說了,
1 把自己的maven版本提升到3.1.1
2 去github上clone下來
maven-android-sdk-deployer 這個項目
3 通過maven-android-plugin生成一個android項目
mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.11 \
-DgroupId=your.company \
-DartifactId=my-android-application
如果不能夠編譯可能要修改一下pom
<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.study.android</groupId>
<artifactId>NiMa</artifactId>
<version>0.0.1</version>
<packaging>aar</packaging>
<name>NiMa</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.0</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
<path>E:\android_work\sdk\</path>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
上面都是個人pom,修改了打包類型和插件版本以及添加了sdk位置。
然後執行打包命令,就可以生成aar文件了,如果是已經有寫好的類庫的話,可以嘗試這修改成maven形式的。
第二步
導入到android studio中 創建libs文件夾,放入想要導入的文件
1 修改build.gradle ,依然是給出可以按照自己的項目對比修改
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenLocal()
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
}
dependencies {
// compile fileTree(dir: 'libs', include: '*.aar') compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.jayway.maven.plugins.android.generation2.samples.libraryprojects:aar-lib1:1.0.0@aar'
//compile 'com.lee.study.android:NiMa:0.0.1@aar' compile 'com.android.support:support-v4:18.0.+'
}
android {
compileOptions.encoding = "UTF-8"
}
❾ Android發布AAR包
最近有需求要發布一套SDK,這套SDK有幾個要求:
依照上面的要求我最先想到的就是AAR包了,因為以下幾個原因:
打包aar其實很簡單,只需要我們創建一個Library工程就可以了。
這個時候編譯Library就會在outputs目錄下生成一個aar文件夾,裡麵包含aar文件。
aar也是可以混淆的,方式和apk一樣。
引用aar可以有兩種方式,一種是本地引用,一種是遠端庫引用,目前我只用到了本地引用,遠端的以後會補上。首先在bulid.gradle文件中定義一個本地庫。
然後在依賴引用的地方添加依賴。
name:aar包的名字;ext:擴展名;
打包aar包的時候會自動將lib目錄下的jar打包進aar包中。
因為分層的原因,有多個library工程,這樣就會有多個aar,發布起來很麻煩,嘗試google了半天,發現目前都是一個辦法,android-fat-aar,一個gradle腳本,github地址是: https://github.com/adwiv/android-fat-aar 。不過我發現他支持gradle2.2.X之前的版本,新的3.X版本並不能執行。這塊還在繼續摸索,有知道辦法的大神請指教一下~~~~
❿ Android:多aar打包
我使用的是網上這個 https://github.com/kezong/fat-aar-android
這個github庫。
具體配置是再跟gradle中添加:
classpath 'com.kezong:fat-aar:1.2.7'
在需要打包的地方添加:
apply plugin: 'com.kezong.fat-aar'
然後添加需要合並的包,可以是遠程包,本地aar,本地project。可以說很完整了。
例如:
怎麼看遠程依賴呢?下面這里就可以看
最後生成的aar包如下,jni和jar包都有了
反編譯看看classes.jar看看,本地項目的類都在這裡面了。
後面得看看是怎麼打包起來的了,不然後續作者不維護了就蛋疼了。