發表文章

目前顯示的是 2月, 2017的文章

[Android] Creating a JAR file with multiple library

圖片
學習會如何打包.jar 與使用後,作者嘗試將library中再包一個jar檔,但發現在使用上出現了問題,為了好了解,所以我舉例解釋. 首先我們先解釋目前的架構,目前我會有的一個library,方便說明我把他命名成firstlib, firstlib內容使用到另一個library,我稱它為secondlib。因此我們需要先將secondlib產生的secondLib.jar檔放入firstlib去做使用。 secondlib我新創一個SecondActivity的class,簡單寫一個函式已之後使用,程式碼如下: public class SecondActivity {     public String secondoutput(){         String output;         output="second success";         return output;     } } 再來下圖表示我們將secondlib產生的secondLib.jar放入於firstlib下。 firstlib我也同樣創一個FirstActivity的class,簡單寫一個函式並且有使用到secondLib的函式,程式碼如下: public class FirstActivity {     SecondActivity name= new SecondActivity();     public String firstoutput(){         String output;         output=name.secondoutput();         return output;     } } 再來我們又做同樣的步驟再將firstlib打包成firstLib.jar。最終將firstLib.jar放入我創建的project使用,並附上架構如下圖: 問題來了,就是再使用firstlib.jar檔時,我們竟然不能使用secondLib.jar的函式,我們打開firstlib.jar看看,可以看到裡頭只有2個class,根本沒有顯示任何secondLib.jar的資訊. 我找了很久才發現問題再於jar檔不能多重打包,當然我們還有另外的替代方案就是使用.aar檔

[Android] build the JAR file in Android Studio

圖片
對於我android新手來說,很常使用別人的library或是.jar做練習,但卻都沒有自己產生過.jar去使用,因此今天自己來練習如何產生.jar去作使用 首先我們先要File---->New--->new project ,我將這project 先命名為test 再來因為要做一個library,所以再到File---->new module---->選擇 Android Library 我將這 module命名為testlibrary,完成之後,我們可以看到整體架構如下: 再來我們先需要完成前置步驟,先看下面如果是要建成library,我們需要修改testlibrary的gradle 要將gradle 的apple plugin改成"library形式",如果已經是 'com.android.library'就不需要再修改了 原本: apply plugin: 'com.android.application' library版本: apply plugin: 'com.android.library' 並在相同檔案下,加入以下程式碼 task makeJar(type: Copy) { from('build/intermediates/bundles/release/') into('build/libs/') include('classes.jar') rename ('classes.jar', 'mytestLibrary.jar') } task clearJar(type: Delete) { delete 'build/libs/mytestLibrary.jar' makeJar.dependsOn(clearJar, build) 完成以上步驟,我們就可以來產生.jar擋了,產生.jar有兩種方法,就看使用者比較喜歡哪一種方法 第一種使用terminal產生: 路徑到你的專案下,輸入./ gradlew make