天天看點

[Android--Tool]Android如何将他人的代碼放入建立的工程中

問題描述:

現有

Android

官網下載下傳的一個

activity-lifecycle

的應用程式工程檔案,不知道怎麼直接打開,于是自己建立了一個叫做

Activity_lifecycle

的工程檔案,并想将

activity-lifecycle

的源代碼檔案等内容放入到建立工程中,并實作與之相同的功能,這樣做有點麻煩,但後面如果用到将已有部分代碼插入時會很有借鑒意義。

activity-lifecycle

中包含有

AndroidManifest.xml

build.xml

檔案,幾個

properties

字尾和一個

cfg

字尾的檔案,另外有三個檔案夾:

libs, res, src

。覺得這其中的源檔案主要包含在

res

src

的檔案中,于是先插入這兩個檔案夾中的

layout

values

.java

字尾等的源檔案,最後再看下

AndroidManifest.xml

是否會自動更新

,如果自動更新則不必自己做修改了。

插入res/layout中的幾個xml檔案:

    右鍵建立工程的layout->import->XML->XML Catalog->Next,然後選中目前的Workspace Files檔案,點選下面的Import Files…,浏覽到layout中的檔案,標明,在下面的清單框中選擇要添加的.xml檔案,再将Into folder:路徑選擇為目前工程的layout的路徑,最後點選finish即完成.xml檔案的導入了。

插入src中的.java檔案:

與插入xml檔案類似,右鍵工程的src下的包-> import->General->File System->Next:

​​

[Android--Tool]Android如何将他人的代碼放入建立的工程中

​​

點選Browse…按鈕選擇需要添加的.java檔案的目錄,在下面的清單框中選擇要添加的檔案,然後選擇Into folder的路徑為目前工程的源檔案存放位址,點選Finish即完成導入:

​​

[Android--Tool]Android如何将他人的代碼放入建立的工程中

​​

建立一個包:

插入源檔案時,可能插入到自己的工程中時,一些包路徑會有不同,此時可以在目前工程中建立包,以使插入的源檔案可用。

​​

[Android--Tool]Android如何将他人的代碼放入建立的工程中

​​

在需要建立包的地方右鍵,然後選擇New->Folder即可彈出上面的對話框,選擇好Source folder和Name(包的名稱)即可。

出現了問題:

接下來還需要将res/values中的.xml檔案(strings.xml, colors.xml, dimensions.xml等)插入到建立工程中。與前面的插入.xml檔案過程一樣。

此時,工程仍有許多打紅叉的地方,對比了一下建立工程與下載下傳的應用程式工程的AndroidManifest.xml檔案,兩者是不一樣的,建立工程的AndroidManifest.xml需要添加相應的activity等内容。這裡直接利用前面插入.xml檔案的方法将其替換掉。

問題出現了,替換掉AndroidManifest.xml檔案後,工程中的R.java丢失不見了,出現了更多的紅色叉。關于R.java檔案丢失的問題,另見《[蘇湘]Android不生成R.java的問題.doc》的描述。原因就是建立的工程與下載下傳的源碼屬于不同的平台版本,進而導緻了R.java的丢失。

如何将原有應用程式代碼放入現有工程:

    既然上面的建立工程再逐漸插入代碼的方式行不通,于是想直接将整個下載下傳的源碼工程插入workspace中。

在ADT中選擇菜單欄File->Import…->Android->Existing Android Code Into Workspace->Next

然後在彈出的Import Projects對話框中浏覽并標明要插入的工程檔案夾,并勾選下面的Copy projects into workspace選項,這會将原來下載下傳的源代碼複制到建立的工程檔案夾中。點選“Finish”完成導入。

但此時ADT工具的地下Console出現以下資訊:

[2013-01-14 09:45:23 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 09:45:24 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 10:18:08 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 10:18:08 - ActivityA] Unable to resolve target 'android-14'

    估計是工程的SDK平台版本設定不當所緻。

在ADT中右鍵點選工程名,選擇Properties選項,選中左側的Android項目,此時在右邊顯示Project Build Target,下面是下載下傳安裝的所有的Android的SDK Platform版本,如Android1.5至Android4.2等。這裡選擇的Project Build Target是指工程選擇在ADT工具的哪個SDK平台下進行編譯生成。

這裡有幾點關于ADT、SDK平台、應用程式版本的問題需要進行說明:

ADT是指安裝和配置的開發工具,向前相容的,使用的最新版本的話是可以對之前所有版本開發的源碼進行編譯的,但以前版本的ADT工具很可能不能編譯最新版本的工程檔案。

SDK平台是Android作業系統不斷更新的各個版本的SDK,也是向前相容的,及初級版本有的功能進階版本肯定是有的,而且進階版本有許多初級版本不具備的功能,是以可能一些進階版本SDK開發出來的程式在低版本上是不能運作的。