android資源打jar包與其他解決方案

轉自:http://www.eoeandroid.com/blog-493288-3123.html

問題:我需要在多個android項目中使用同樣的代碼,而且這些代碼又包含資源文件,怎麼辦?

    當然會想到打成jar!

    但是,當辛辛苦苦把資源文件與各種java文件打成一個jar在另外一個程序中使用的時候,無情的報錯:重複的命名(大致是這個意思,具體是什麼忘記了),

原因是jar的AndroidManifest.xml、drawable等文件名與我現在項目中的衝突了,但是把jar包項目中的這些文件名改了又不好使,所以,有人把資源文件提取出來放在src目錄中,而不是傳統的res目錄下。

圖個方便,我直接把圖片放到了Activity同一包下。

然後在Activity中如下引用這個圖片資源:

        Bitmap bm = BitmapFactory.decodeStream(getClass().getClassLoader().getResourceAsStream("com/packetjar/main_bg_hair.jpg"));

        ImageView iv = new ImageView(context);

        iv.setImageBitmap(bm);   

注意圖片路徑的寫法。

這個是圖片,如果是字符串,就可以弄個靜態類來保存這些字符串。

然後打成jar包,怎麼打jar包就不說了,注意把那些引起衝突的文件的勾都去掉:

由於去掉了配置文件啊什麼的,所以如果jar中包含Activity這些東西,而且res下面不止是圖片和字符串啊,還有動畫、樣式等文件, 會變得很麻煩,果斷放棄了。

 

幸虧有種比較好的代替方案,就是:

我在新建android項目的時候,可以把這個項目設置成庫項目。所謂的庫項目,就是指我這個項目可以被別的項目所引用(當然這個庫項目與引用這個庫項目的android項目必須在一個workspace下面)。

設置成庫項目的方法如下,先新建一個android項目,然後右擊項目->properties->Android

勾上。

這時你會發現,bin目錄下的內容變了:

在bin下面生成了一個jar包,而且res下面是空的,在不是庫項目的情況下大家可以看下是什麼。

按正常的流程,我寫一個Activity,引用res下的資源,並在配置文件中配置。

現在,我要在另外一個項目中引用這個庫項目。

右擊這個新的項目,properties->Android->

點Add,然後會讓你選擇添加庫項目,選擇好了後點確定。

這時發現項目發生了一些變化,多了一個目錄:

裏面有一個jar文件,就是剛纔庫項目中的那個bin目錄下的jar嘛。

這樣,我就可以引用庫文件下的內容了,Activity、Service這些也不用再在配置文件中定義了。

覺得這種方法很方便。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章