1. 程式人生 > >使用android studio將eclipse專案改造成gradle專案中踩過的坑

使用android studio將eclipse專案改造成gradle專案中踩過的坑

       本文中部分內容是看過了張大神的部落格後分享出來的。

       其實android studio使用起來和之前習慣用eclipse開發區別並不大,只是一些快捷鍵發生了變化,這個是需要你去熟悉和設定的,區別比較大之處,之前eclipse開發是通過adt來進行專案編譯、打包的,只是現在android studio中把adt這塊徹底拋棄了,引入了gradle這個自動化構建工具。而恰恰上手難點之處便在於gradle這塊,所以對於android studio的使用還是需要對gradle這個工具瞭解比較多,方能駕馭輕熟。

        其實android studio 這個工具早在2013年的時候google就推出來了,但是剛推出來的時候大家並沒有去用他,那個時候對於這個工具的介紹也是很少,這也是造成普及不多的重要原因。每當一個新的東西出來了,總是需要時間接納它的到來,這就也是我們作為程式設計師的基本素養。而到android studio2.0推出後,這個趨勢越發明顯,有種再不用android studio你就徹底out了。

         首先介紹下android studio這個工具。android studio有以下這麼多優點:

  • 1、Google推出的

毫無疑問,這個是它的最大優勢,Android Stuido是Google推出,專門為Android“量身訂做”的,是Google大力支援的一款基於IntelliJ IDEA改造的IDE,這個應該能說明為什麼它是Android的未來

  • 2、速度更快

Eclipse的啟動速度、響應速度、記憶體佔用一直被詬病,相信大家這點應該深有體會,而且經常遇到卡死狀態。Studio不管哪一個方面都全面領先Eclipse

  • 3、UI更漂亮

I/O上演示的那款黑色主題真是太棒了,極客範,Stuido自帶的Darcula主題的炫酷黑介面實在是高大上,相比而言Eclipse下的黑色主題太low了

  • 4、更加智慧

提示補全對於開發來說意義重大, Studio則更加智慧,智慧儲存,從此再也不用每次都 Ctrl + S了。熟悉Studio以後效率會大大提升。

  • 5、整合了Gradle構建工具

Gradle是一個新的構建工具,自Studio亮相之處就支援Gradle,可以說Gradle集合了Ant和Maven的優點,不管是配置、編譯、打包都非常棒。

  • 6、強大的UI編輯器

Android Studio的編輯器非常的智慧,除了吸收Eclipse+ADT的優點之外,還自帶了多裝置的實時預覽,相對這對Android開發者來說簡直是神器啊。

  • 7、內建終端

Studio內建終端,這對於習慣命令列操作的人來說簡直是福音啊,再也不用來回切換了,一個Studio全部搞定。

  • 8、更完善的外掛系統

Studio下支援各種外掛,如Git、Markdown、Gradle等等,你想要什麼外掛,直接搜尋下載。

  • 9、完美整合版本控制系統

安裝的時候就自帶了如GitHub, Git, SVN等流行的版本控制系統,可以直接check out你的專案。

        面對眾多的優點,所以作為android開發人員有什麼理由不去使用它以及讓你的專案飛起來呢?

        剛開始用的時候真的覺得好難用,難用是因為它的快捷鍵和之前的大不一樣,但是這個只是一個過程,需要你下定決心,頂多花數小時就可以輕鬆適應了。下面說下快捷鍵如何設定:

Studio預設的快捷鍵和Eclipse差別很大,但是Studio強大的地方在於通過設定你可以一直沿用Eclipse風格的快捷鍵,這樣對於那些Eclipse過渡來的同學省了很多學習成本。

Preferences -> Keymap 然後就可以選擇你想要的快捷鍵,這裡不止可以選擇Eclipse,還可以選擇 EmacsNet Beans 等編輯器的快捷鍵

對於新手們或者對Eclipse沒有好感的同學們,肯定想學習預設的Studio快捷鍵,下面整理了下常用的一些快捷鍵,更多的快捷鍵還需要大家自己去習慣適應。(我自己選擇的是Mac OS X 10.5+)

Action Mac OSX Win/Linux
註釋程式碼(//) Cmd + / Ctrl + /
註釋程式碼(/**/) Cmd + Option + / Ctrl + Shift + /
格式化程式碼 Cmd + Option + L Ctrl + Alt + L
清除無效包引用 Option + Control + O Alt + Ctrl + O
查詢 Cmd + F Ctrl + F
查詢+替換 Cmd + R Ctrl + R
上下移動程式碼 Option + Shift + Up/Down Alt + Shift + Up/Down
刪除行 Cmd + Delete Ctrl + Y
擴大縮小選中範圍 Option + Up/Down Ctrl + W/Ctrl + Shift + W
快捷生成結構體 Cmd + Option + T Ctrl + Alt + T
快捷覆寫方法 Cmd + O Ctrl + O
快捷定位到行首/尾 Cmd + Left/Right Ctrl + Left/Right
摺疊展開程式碼塊 Cmd + Plus,Minus Ctrl + Plus/Minus
摺疊展開全部程式碼塊 Cmd + Shift + Plus,Minus Ctrl + Shift + Plus,Minus
檔案方法結構 Cmd + F12 Ctrl + F12
查詢呼叫的位置 Ctrl + Option + H Ctrl + Alt + H
大小寫轉換 Cmd + Shift + U Ctrl + Shift + U

自動導包

最後再介紹一個最有用的設定,我們只有每次引用一些類的時候必須要導包,而Studio可以通過設定自動導包,簡直太實用了.

到 Preferences -> Editor -> Auto Import -> Java 把以下選項勾上就OK了

        當你把這個適應了其實發現這個只是冰山一角,最難的地方原來是gradle這個工具,你的專案從此開始與它結下不解之緣,這就需要你對gradle有一些基本的認識和了解,要不然你的專案跑不起來,專案跑不起來作為程式設計師的你已經心急如焚,這個時候給你一條明路想必肯定是雪中送碳了。

        什麼是Gradle?Gradle是一種依賴管理工具,基於Groovy語言,面向Java應用為主,它拋棄了基於XML的各種繁瑣配置,取而代之的是一種基於Groovy的內部領域特定(DSL)語言。

首先看下目錄結構,注意切換到project結構下看專案


       一個專案中的哪些檔案是gradle工具最重要的呢?每一個java程式碼或者一個android library以及android專案各自都有一個build.gradle檔案,這個檔案就是用於gradle去管理這個程式碼包的。你會發現整個專案根目錄下還有一個build.gradle檔案,這個是去管理整個專案。


       如上圖,黃色框框裡面的apply是library表明這個專案是一個庫,和之前在eclipse裡面的一樣,也屬於安卓專案,只是用作library了。如果要使用ndk直接在default下配置ndk即可,但是一定要記住要去下載一個ndk,並且在local.propeyties檔案下新增一句如下圖:


        否則會提示ndk相關錯誤,提示你去設定ndk的源路徑或者去禁用掉如下圖:


         如果編譯過程在發現一直報apache http相關的的資源錯誤,那是因為你沒有加一句


        加上這句然後同步程式碼就可以解決了。

        如果你的專案需要在jdk 1.7或者以上的java環境下執行的話,你需要在整個專案根目錄下的那個build.gradle檔案中加上如下圖這句話,然後重新編譯專案即可以通過。


        如果編譯過程中報了字串格式不正確,ue01不正確之類,這個時候是你的那個檔案下的編碼格式有問題,你需要用其他編輯開啟,然後選擇編輯編碼格式為utf-8 無DOM格式,或者直接是utf-8格式都可以解決此問題。

       這些坑都是在將之前的eclipse專案匯入到android studio中發生的,這個坑比較多,並沒有列舉全,改造的過程中遇到的問題遠遠不止這些,但是遇到問題不要怕,記住一句話“就沒有解決不了的問題,如果有那也是你的方式方法不對”,方法總比問題多,至少在我現在看來,就沒有發現一個問題解決不了的,到最後都解決了,只是有些問題你可能花的時間多些,需要你翻閱更多資料,有必要時還需要你翻牆,其實想快速解決最好是直接去翻牆。

如果有什麼問題,可以留言告訴我,我可以幫你解答,如果沒有遇到的問題,可以一起討論解決。