導航:首頁 > 源碼編譯 > 編譯成功aar沒生成

編譯成功aar沒生成

發布時間:2022-04-03 07:32:59

Ⅰ 怎麼讓android studio的編譯的aar防止反編譯

1、 簡述

在比較大的 Android 項目的開發中,我們經常會遇到工程、jar 包等等之間相互引用的方式。一般我們通過在 gradle 文件中配置依賴來解決

通用配置

Gradle 的一些基本依賴配置方式如下:

compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"]):將某個目錄下所有符合擴展名的文件作為依賴;
compile 'com.xx.xx:ProjectName:Version':配置Maven` 庫作為依賴;在 Maven 庫中心 可以搜索自己想用的庫進行依賴;
compile project(':AnotherMole'):配置另一個 Mole 作為本 Mole 的依賴,被依賴的 Mole 必須被導入到當前工程中;
compile files('xxx.jar'):配置某個 jar 包作為依賴。
看起來不錯,基本通用的配置都已經存在了。一般對於中等小型的工程,這種開發方式完全沒有問題。但是有時候 A 和 B 兩個工程,想同時引用另一個公共的 Mole C,而這個 Mole 可能是一個比較復雜的 Android Mole,可能包含了一些主題、UI 、資源文件等等,這時候,如果用 Mole 依賴的方式來配置,不免有些困難,因為 A 和 B 都要導入 C,而且要隨時關注 C 的更改。

好在 Android Studio 提供了 aar 庫的打包方式,我們可以把 C 作為 library 進行打包,輸出 aar 文件,然後在 A 和 B 中,配置 aar 庫依賴,就可以解決。

2、aar 文件簡介

要輸出 aar 文件,必須將 Mole 配置為 library

輸出 aar : apply plugin: 'com.android.library';
輸出 apk :apply plugin: 'com.android.application'。
將 Mole 配置為 library 後,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯後壓縮在在 classes.jar 中。

3、導入 aar 的方式引用
這種方式比較簡單,打開 Project Structure,添加一個新 Mole,然後選擇 Import *.JAR or *.AAR Package 的方式導入
導入後,在你的工程下面,會生成一個文件夾,裡面是 aar 文件以及 Android Studio 的配置文件。
接著可以在 gradle 中配置依賴了,其他 Mole 可以引用這個 Mole 了,依賴方式使用 compile project 的方式即可。
缺點:被依賴的 aar 無法 F3 跟進去,無法看到資源文件內容以及目錄層級等等缺陷。

4、使用配置依賴的方式引用

gradle 其實還有另一種依賴可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要將 aar 文件放入引用 Mole 的 libs 目錄下,和一般的 jar 文件類似。然後在 gradle 配置文件中把 libs 目錄加入依賴:
repositories
flatDir {
dirs 'libs'
}
}
接著在 gradle 的依賴配置中加入 compile(name: 'xxx', ext: 'aar') 這一句,依賴即可關聯完畢。構建一下工程,在 Mole 的build/intermediates/exploded-aar 目錄下,可以看到有一些臨時文件生成
被導入 aar 生成的臨時文件
Android Studio 安裝反編譯插件後,可以通過 F3 跟進到 class 文件裡面,如果你有被依賴 Mole 的源代碼的話,還可以 Attach Source 關聯源代碼查看。另外,可以很方便的查看 aar 中的資源文件。

另外,這種依賴方式更新 aar 後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。

Ⅱ 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 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導出aar時嵌套引用有關問題怎麼解決

新建一個Demo項目 2 新建好的項目結構如下圖: 其中app是我們的主要mole, libs下存放外部的library build.gradle是配置App mole的,接下來主要對其操作。 3 復制外部aar包到libs目錄下。 4 修改build.gradle 配置文件: 1:添加 repositories flatDir { dirs 'libs' }} 這個是添加一個本地倉庫,並把libs目錄作為倉庫的地址。 5 2:修改dependencies: 添加一行: compile(name:'usericonchooserutil', ext:'aar') 其中name就是libs目錄下usericonchooserutil.aar文件名稱, ext,就是usericonchooserutil.aar的擴展名 6 重新編譯項目: 從工具欄依次選擇:"Build"-->"rebuild project" 7 編譯完成後,在app/build/intermediates/exploded-aar/ a就可以看見我們引用的aar包內容了,其中jar目錄下是jar文件,res下是我們aar包里的資源文件。 8 這個時候我們就可以在項目中使用第三包的類了

Ⅳ 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 引用aar怎麼編譯不了

1、 簡述
在比較大的 Android 項目的開發中,我們經常會遇到工程、jar 包等等之間相互引用的方式。一般我們通過在 gradle 文件中配置依賴來解決,比如:
<img alt="通用配置" src="http://www.2cto.com/uploadfile/Collfiles/20150519/20150519085924119.png" title="" http:="" www.2cto.com="" kf="" ware="" vc="" "="" target="_blank" class="keylink" style="padding: 0px; margin: 0px auto; list-style: none; display: block; width: 630px; height: 198.454680534918px;">++o7q9q8SzuPbEv8K8z8LL+dPQt/u6z8Cp1bnD+7XEzsS8/tf3zqrSwMC1o7sgPGNvZGU+M8L2NvZGU+TWF2ZW5gIL/i1/fOqtLAwLWju9TaIE1hdmVuIL/i1tDQxCC/ydLUy9HL99fUvLrP69PDtcS/4r340NDSwMC1o7sgPGNvZGU++/Nf3zqrSwMC1oaMNCjxwPr+CIMG9uPa5pLPMo6zP682syrHS/+NXiuPYgTW9kdWxlIL//vNKqtbzI6yBDo6y2+++YWFyPC9jb2RlPiC/4rXEtPKw/Le9yr2jrM7Sw8e/++/="2aar-文件簡介">2、aar 文件簡介
要輸出 aar 文件,必須將 Mole 配置為 library,在 gradle 文件中如下:
輸出 aar : apply plugin: 'com.android.library'; 輸出 apk :apply plugin: 'com.android.application'。
將 Mole 配置為 library 後,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯後壓縮在在 classes.jar 中。比如:

3、導入 aar 的方式引用
這種方式比較簡單,打開 Project Structure,添加一個新 Mole,然後選擇 Import *.JAR or *.AAR Package 的方式導入:

導入後,在你的工程下面,會生成一個文件夾,裡面是 aar 文件以及 Android Studio 的配置文件。

接著可以在 gradle 中配置依賴了,其他 Mole 可以引用這個 Mole 了,依賴方式使用compile project 的方式即可。
缺點:被依賴的 aar 無法 F3 跟進去,無法看到資源文件內容以及目錄層級等等缺陷。
4、使用配置依賴的方式引用
gradle 其實還有另一種依賴可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要將 aar 文件放入引用 Mole 的 libs 目錄下,和一般的 jar 文件類似。然後在 gradle 配置文件中把 libs 目錄加入依賴:
?

1
2
3
4
5

<code class="hljs bash">repositories {
flatDir {
dirs 'libs'
}
}</code>


接著在 gradle 的依賴配置中加入 compile(name: 'xxx', ext: 'aar') 這一句,依賴即可關聯完畢。構建一下工程,在 Mole 的 build/intermediates/exploded-aar 目錄下,可以看到有一些臨時文件生成:

看起來完全是引用 aar 的解壓版本。Android Studio 安裝反編譯插件後,可以通過 F3 跟進到 class 文件裡面,如果你有被依賴 Mole 的源代碼的話,還可以 Attach Source 關聯源代碼查看。另外,可以很方便的查看 aar 中的資源文件。
另外,這種依賴方式更新 aar 後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。
5、總結
綜上,介紹了 aar 文件的生成方式,以及兩種 aar 依賴的方式,經過實戰檢驗,第二種通過配置 gradle 依賴的方式簡單易用,只需一行代碼即可搞定。

Ⅶ 怎麼生成aar包

-_-!!! jar吧…… 你用的什麼IDE?IDE都可以直接把工程壓縮成jar包,如果只用了JDK和記事本 那就在命令行敲jar命令了,和javac一樣
·javac – 編譯器,將源程序轉成位元組碼
·jar – 打包工具,將相關的類文件打包成一個文件
·javadoc – 文檔生成器,從源碼注釋中提取文檔
·jdb – debugger,查錯工具
·java – 運行編譯後的java程序(.class後綴的)
appletviewer:小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。
Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示位元組代碼含義。
Jconsole: Java進行系統調試和監控的工具

Ⅷ 請教as導出的aar為什麼沒包含class文件

新建庫,File——New——New Mole——Android Library
編譯或生成工程,Build——Make Mole
獲取jar包,在build\intermediates\bundles\release目錄下的classes.jar
導入

把工程切換到Project視圖下,在app目錄下創建libs目錄
把jar拷貝到libs目錄
右鍵——Add to Library,Create Library默認選app。完成後jar包將變成如下這樣

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

在android studio中,有兩種方式:

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

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

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

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

  1. 新建一個Demo項目


Ⅹ 打包成aar的工程有第三方jar包,生成aar後,裡面的jar無法引用,怎麼解決

首先說明我使用的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

閱讀全文

與編譯成功aar沒生成相關的資料

熱點內容
在哪能下編譯程序 瀏覽:970
高速哪個app比較准確 瀏覽:203
王者榮耀安卓怎麼購買轉移號 瀏覽:950
改變自己pdf 瀏覽:958
php自動安裝程序 瀏覽:418
linux命令行開機 瀏覽:422
程序員圖鑒刷屏 瀏覽:645
vector源碼java 瀏覽:77
中文編程網頁 瀏覽:782
文件加密如何進行比對 瀏覽:557
阿里雲伺服器計算型通用型區別 瀏覽:947
夜嗨app怎麼不能更新 瀏覽:540
qd65y壓縮機參數配置 瀏覽:942
中級會計教材pdf 瀏覽:479
弱簽名演算法md5 瀏覽:364
進行系統硬體設置的文件夾是 瀏覽:756
dwrg什麼文件夾 瀏覽:677
小米電視如何加密wifi 瀏覽:343
java私鑰解密 瀏覽:959
犯過罪還能當程序員嗎 瀏覽:986