說到使用AndroidStudio,除了新建的項目,我們都會面臨的問題是原先Eclipse的代碼該怎么導入到AndroidStudio中使用。
這方面相關(guān)的資料還比較少,自己摸索了一下,總結(jié)出這篇博客,希望能讓開發(fā)者少走些彎路。
OK,進入正題。
Google為了讓我們更加方便的使用AndroidStudio,提供了兩種導入Eclipse代碼的方式:一種兼容Eclipse,一種是全新的Android Gradle Project.
這里,我們先從兼容模式說起。
這種模式下,保證了Eclipse時代的代碼目錄結(jié)構(gòu),整體操作和使用和Eclipse也差不多。
最重要的,當你使用AndroidStudio時,你或者其他人也可以方便的使用Eclipse,互不干擾。
導出后,由于adt很久沒更新,需要手動改一些參數(shù),才能保證正常使用。
為了保證能夠講解的更清晰,下面分情況講解一下:
這種情況下你看到的目錄是這樣的
其實改動方法和上面一樣,只需要注意是改動整個項目的build.gradle和 /gradle/wrapper/gradle-wrapper.properties。
而不要嘗試去主工程或者庫工程里面找build.gradle
已經(jīng)創(chuàng)建過工程的打開AndroidStudio會直接進入以前的工程
這時候可以選擇File-->Import Project, 選中后點擊ok
使用IDE的打包:
在兼容模式只打主工程的,庫工程沒有加入到apk中,導致無法正常運行。
截止到1.0.2,AndroidStudio依然存在這個bug。
因為這個bug的存在,你在兼容模式可以使用AndroidStudio編程,打包時開啟Eclipse。
OK,兼容模式介紹到這里。 我們開始介紹主角: Android Gradle Project。 這里必須說明的是Google更希望我們使用這種方式,如果沒有什么團隊的壓力,還是使用這種吧。
打開Import
直接找到原有的Eclipse工程
這個地方需要詳細說一下
之后需要經(jīng)過一段時間的轉(zhuǎn)換。成功后可以看到import-summary.txt,這個文件非常有用,后面會講到。
到這里,你的應(yīng)用其實已經(jīng)可以通過AndroidStudio正常編譯,你也可以寫代碼去了。
但我希望你還能繼續(xù)看下去,因為這個成功后彈出來的import-summary.txt寫了些很重要的東西。
Your project uses libraries that provide manifests, and your Eclipse
project did not explicitly turn on manifest merging. In Android Gradle
projects, manifests are always merged (meaning that contents from your
libraries' manifests will be merged into the app manifest. If you had
manually copied contents from library manifests into your app manifest
you may need to remove these for the app to build correctly.
這段應(yīng)該都能看懂,無非就是說你Library的清單文件有效啦。
不用手工拷貝到主工程的清單文件中了。以前拷貝過的,要移除才能正確build。
之所以說這部分重要,是因為AndroidStudio通過這段文字告訴了你,它導入的時候忽略了哪些文件。
也就是說這部分內(nèi)容,它沒給你拷進來,你要是不去自己拷貝,那這部分你新Gradle工程里面就沒有了。
這里選一些典型的ignore文件來看一下:
給上面的忽略文件分分類:
需要留意你的Ignored Files部分,并根據(jù)自己的需要手工拷貝到新工程中。
在Replaced Jars with Dependencies部分,有如下文字:
可以看到j(luò)ar被替換了。 可以看到工程里面沒有了當初添加的jar包。那么jar包去哪了呢?
暫時先留個懸念。
我們繼續(xù)來看 Replaced Libraries with Dependencies部分
可以看到ActionbarSherlock被替代為了aar(Android ARchive ,jar : Java ARchive)。關(guān)于aar的介紹可以看這里,本文就不再詳細展開了。
可以看到的是Library和jar都被替換了,可是你在當前工程里再也找不到了。這是為什么?
跟我來看下面的操作:
OK,到這里就可以知道真相了,在AndroidStudio中你可以添加在線的庫或jar包,添加完成后你就可以和平時一樣正常使用。
而你的同事在打開這個工程的時候會即時下載,保證你們的代碼都能正常運行。
這也是為什么當你的工程轉(zhuǎn)換完畢后,有些jar和Library消失的原因。他們被轉(zhuǎn)成在線的了。
這部分在講你的目錄結(jié)構(gòu)變化,基本上可以認為他在廢話,沒什么看的必要了。
呵呵,略過吧
This import summary is for your information only, and can be deleted
after import once you are satisfied with the results.
你一旦覺得自己的工程沒問題了,就可以把這個文件刪除了。
通過上面的步驟,你的項目已經(jīng)轉(zhuǎn)換了目錄結(jié)構(gòu),這時候你可以提交代碼,供其他同事下載使用了。
其他同事把代碼下載下來,他們所需要引入的是一個Android Gradle Project了。
新用戶
老用戶依然使用: File-->Import Project
這里需要提醒的是,對于含有庫工程的項目而言, 需要指定整個項目的目錄,僅僅指定主工程是沒用的。
到這里我們需要停下來總結(jié)一下:
在Module上右鍵refactor--> rename ,當然可以看到有快捷鍵shift + F6, 這樣就可以改變Module的名稱了。
但是還沒有結(jié)束,這樣沒有更改引用這個Module的地方。
如果他是一個庫工程,你還需要繼續(xù)去查看引用它的地方并進行修改。主要是其他Module的Gradle文件。
Tips:
選中Module,ctrl+c即可復制工程名,在相關(guān)Gradle文件中ctrl+v替換成新的名稱即可。
最后,別忘了,settings.gradle,這里include的module名稱也需要更改。 至此,算是修改結(jié)束。
一切修改完畢,點擊彈出提示中的Sync Now,讓工程重新構(gòu)建
以上就是兩種導入的方式的介紹,總體來說第一種適合無奈的時候提前熟悉AndroidStudio,第二種則是更推薦的方式。
無論采用哪一種,都希望你能盡快的接觸AndroidStudio,體驗它的強大。