Android Studio編譯的時候會自動將項目生成jar和aar的,我一開始覺得jar須要本身單獨生成,其實AS已經自動生成了,網上找的不少資料都是一個複製的過程而已。html
只不過在AS3.1之前是放到build/intermediates/bundles文件夾裏面。android
然而如今換成了build\intermediates/packaged-calsses文件夾裏面了,之後也不知道會放哪兒了,這是一坑。windows
若是直接從已經完成的項目出發,能夠直接修改build.gradle第一行,改爲apply plugin:'com.android.library';app
可是這麼一修改,可能會出現不少錯誤,什麼參數錯誤,什麼資源文件有問題等。gradle
保險起見,從「0」開始。ui
新建一個module,注意選擇Android Library類型。spa
把一些須要打包的文件通通寫到這個library裏面,若是有什麼錯誤的話,就一個一個去解決吧。命令行
將module完善以後,就開始打包了。debug
在文末添加以下代碼:3d
//修改jar名字+將指定jar生成的地方 task makeJar(type:Copy){ //若是以前存在,則先刪除 delete 'build/libs/test.jar' //設置拷貝的文件 from('build/intermediates/packaged-classes/debug/') //生成jar包後的文件目錄位置 into('build/libs/') //include,exclude參數來設置過濾 include('classes.jar') //重命名 rename('classes.jar','test.jar') } makeJar.dependsOn(build)
在AS最下方的Terminal中輸入命令便可。
若是是MAC電腦:./gradlew makeJar
若是是Windows電腦: gradlew makeJar
若是報錯,通常都是沒有配置gradle環境,谷歌一下解決方案唄。
幸運的話,能夠在build/libs文件夾下看到生成的jar文件了。
在Build Success後,在module的build/outputs/aar文件夾下會有一個aar文件。
在module的build/libs或本身定義的其餘位置下會有一個jar文件。
兩者區別:
jar: 只包含了class文件與清單文件 ,不包含資源文件,如圖片等全部res中的文件。
aar: 包含jar包和資源文件,如圖片等全部res中的文件。
aar編譯完就自動生成了,因此不一樣擔憂資源問題。
很簡單。
i.將aar文件拷貝至目標項目的app/libs文件夾下。
ii.在app下的build.gradle中添加以下代碼:
分別是這兩塊:
repositories{ flatDir{ dirs 'libs' } }
implementation(name:'librarydemo-release',ext:'aar')
Sync Now一下,若是沒有報錯,應該就是成功引用了。
看一下依賴的外部類,已經有了剛纔咱們引用的library了。
這個網上搜一大把。方法也是相似的,更加簡單。
先將jar拷貝至目標項目的app/libs文件夾下。
mac電腦操做以下:右鍵->add as library->選擇當前mudule->OK.
windows電腦相似的。
稍微有點麻煩。
首先將jar包中用到的資源文件放到本身的項目中。
而後在本身的項目中利用反射獲取。參考文章點我。