導航:首頁 > 操作系統 > androidstudio導出aar

androidstudio導出aar

發布時間:2022-06-03 07:07:15

『壹』 如何讓用android studio 導出jar包並混淆和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"?>
<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>
<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"
}


repositories
添加了 flatDir , dependencies 裡面添加了 依賴的aar文件。

如果你做到這一步,重新編譯一下依賴就添加好了,我目前的版本添加完了aar訪問aar中的資源文件是不成問題的,但是不能訪問到aar中的
類文件。如果你和我一樣不幸的話,請看下一步

2 手動的添加class.jar文件到android -studio

選中項目F4 ,可以查看到詳細的依賴關系

『貳』 怎麼改變android studio中庫的aar文件的輸出目錄

在Android Studio菜單上,依次選擇: File New Xml Layout xml File Android Studio 是一個Android開發環境,基於IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用於開發和調試。 在IDEA的基礎上,Android Studio 提供: 基於Gradle的構建支持 Android 專屬的重構和快速修復 提示工具以捕獲性能、可用性、版本兼容性等問題 支持ProGuard 和應用簽名 基於模板的向導來生成常用的 Android 應用設計和組件 功能強大的布局編輯器,可以讓你拖拉 UI 控制項並進行效果預覽

『叄』 如何將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中,有兩種方式:

一種是jar包,一種是帶資源文件的aar包,

jar:只包含了class文件與清單文件,不包含資源文件,如圖片等所有res中的文件。

aar:包含jar包和資源文件,如圖片等所有res中的文件

這里將著重介紹如何使用本地的aar包

  1. 新建一個Demo項目


『陸』 android studio 怎麼打aar包

1.aar包是android studio下打包android工程中src、res、lib後生成的aar文件,aar包導入其他android studio 工程後,其他工程可以方便引用源碼和資源文件

2.生成aar包步驟:

①.用android studio打開一個工程,然後新建一個Mole,新建Mole時候選擇Android Library,後面按新建普通工程操作

3.其他androidstudio工程引用aar包

①.將aar包復制到lib目錄下

②.配置build.gradle文件:

加入

repositories {
flatDir {
dirs 'libs'
}

compile(name:'camerascan-1.0', ext:'aar')

完整的配置文件:

詳細教程詳細教程

『柒』 android studio怎麼導出jar包

不像在Eclipse,可以直接導出jar包。AndroidStudio只可以生成aar包。
在網上看到許多朋友問怎麼可以像Eclipse一樣導出jar包,其實我們只要知道它的原理就可以了。
用jar命令就可以打包你所需要的資源,並指定jar包名。
在網上下載Volley源代碼,導出jar包為例子。
在Volley項目工程中,我修改了下他的gradle版本,改為0.12+,
因為我是最新的gradle2.0。現在它的build.gradle文件如下:

[java] view plain
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'com.andriod.library'

android {
compileSdkVersion 19
buildToolsVersion = "20"

sourceSets {
defaultConfig {
testPackageName 'com.android.volley.tests'
}

main {
assets.srcDirs = ['assets']
res.srcDirs = ['res']
aidl.srcDirs = ['src']
resources.srcDirs = ['src']
renderscript.srcDirs = ['src']
java.srcDirs = ['src']
manifest.srcFile 'AndroidManifest.xml'

}

instrumentTest.setRoot('tests')
instrumentTest.java.srcDirs = ['tests/src']
}
}
因為再導入Volley工程的時候,我選擇的是推薦的Gradle Wrapper,它的作用是使我們在Unix,windows平台
下實現兼容。我用的是windows,所以先到達Volley的根目錄,Volley我下載到E:\下
cd e:\Volley
接著輸入命令:
gradlew clean build
就會看到Volley目錄下有一個build文件夾,在 build/intermediates/classes/release下,我們可以看到Java文件生成的class文件,我們只要用jar打包這個文件夾就可以了
輸入下面的命令,記得最後一個是'.',前面有空格。
jar cvf volley.jar -C build/intermediates/classes/release .
不懂什麼意思的話,去
http://blog.sina.com.cn/s/blog_93d133c601013hdm.html看下。
如無意外的話你會在Volley文件夾下看到volley.jar。
但是這並不是我們想要的啊,我想AndroidStudio自動的幫我搞好,生成jar包.
這就需要我們在build.gradle中設置了
由gradle官網可以知道,task和project是gradle最主要的東西,我當初的想法就是,
建立一個task,調用jar命令幫我生成jar包,結果成功了,如下:
[java] view plain
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}

//定義一個函數,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("volley.jar","build/intermediates/classes/release")

}

apply plugin: 'android-library'

android {
compileSdkVersion 19
buildToolsVersion = "20"

sourceSets {
defaultConfig {
testPackageName 'com.android.volley.tests'
}

main {
assets.srcDirs = ['assets']
res.srcDirs = ['res']
aidl.srcDirs = ['src']
resources.srcDirs = ['src']
renderscript.srcDirs = ['src']
java.srcDirs = ['src']
manifest.srcFile 'AndroidManifest.xml'

}

instrumentTest.setRoot('tests')
instrumentTest.java.srcDirs = ['tests/src']
}
}
現在我們在Volley文件夾下運行buildLib這個task就行了
gradlew buildLib
*_*成功了吧..具體更多的細節的話,你們可以去官網找下答案,或者留言問我也可以。。

閱讀全文

與androidstudio導出aar相關的資料

熱點內容
android上下拉刷新 瀏覽:876
centos可執行文件反編譯 瀏覽:834
林清玄pdf 瀏覽:268
黑馬程序員java基礎 瀏覽:281
awss3命令 瀏覽:358
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:346
什麼方式解壓比較好 瀏覽:267
erp是什麼伺服器 瀏覽:186
python中tmp 瀏覽:25
說明wpf加密過程 瀏覽:146
java讀取list 瀏覽:704
iis7gzip壓縮 瀏覽:40
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:476
php函數的返回值嗎 瀏覽:589