關於Eclipse如何加入Gradle文件與Android Studio兩個平台一起開發,工作目錄不發生變化


前言:

本來很久之前想弄這玩意,不過因為各種原因,所以沒弄。

今天有位前輩提出需求。說想讓Eclipse的Android項目逐步走向Android Studio,但是又擔心Android Studio一時三刻適應不過來。

說能不能不改變源代碼的主要工作目錄(在Eclipse的android project root/的 src、res、lib、AndroidManifest.xml四個目錄)來在Android Studio上開發呢?

 

大前提:

我當看到這篇博客的看官已經對Android Studio有足夠熟悉

(怎么才算足夠熟悉呢?)

1.起碼你的Android Studio已經能運行起來。而不是像其他的同學說。我的Android Studio一直跑不起來。

2.知道Android的構建工具是Gradle是什么玩意?起碼你環境(命令行CMD)上敲入gradle -v 能見到你的Gradle version

3.知道Android Studio的Project相當於Eclipse的Workspaces ,Module 相當於Eclipse的project

4.知道Android Studio的Android Module root目錄分布 (build,libs,src以及build.gradle文件),以及里面都是些什么東西。

開始正文吧:

如果已經投向Android Studio的同學大可以不看這篇玩意。因為你們已經很熟悉Android Studio了。

 

1.如上題目。Eclipse與Android Studio這兩個IDE的Android項目因為工作目錄不相同,所以不能很好的兼容開發。

如果看了某些文章的話。(http://www.tuicool.com/articles/2q6fMr),

知道Android project 打包方式 (Eclipse使用Ant,Android studio 是用Gradle)

那既然他們本來不一樣的打包方式,怎么切換IDE來進行開發呢?

 

2.我們知道Google 為了讓更多的Android開發者的IDE從Eclipse 轉去Android Studio。就有一個操作。就是能直接把導入Eclipse的Android project

看到這里。同學說。你這是廢話嘛?下面還要繼續看不?

雖然可以直接導入項目,但是導入進去后,發現項目在Android Studio的工作目錄已經發生翻天覆地的變化了。(其實就是變成了Android studio的項目而已)

 

3.正因為有上面兩點,所以本文才有需求出現。

(其實本文工作原理很簡單的。就是為了適應在Android studio上運行而改變一下Gradle的腳本,至於Gradle的腳本怎么寫。下面會提到。)

准備工作:

1.新建好一個能運行的(HelloWorld) 的Android 項目。

2.右擊該死的項目導出

 

我假如你只打開一個項目。后面的步驟就一直Next就好了。

3.為了明顯表現多了哪些文件。所以就用SVN的項目來做Demo。

如圖的多出的文件(build.gradle,gradlew,gradlew.bat)與及文件夾(gradle)

其中只有build.gradle和文件夾(gradle/wrapper)中的gradle-wrapper.properties有用。

 

(別急着刪除其余的,其他你只是不用修改他而已,不是讓你刪除它。

(gradlew,gradlew.bat 這兩玩意是給 玩 “命令行” 的人用的。至於你用哪一個呢?就看你哪個系統了。

后話:我一開始都感覺這兩玩意是沒有用的。

(因為我配置Gradle在環境了。一直用着gradle命令。沒有用gradlew,這個后面帶有w的gradlew)

其實這個gradlew是你當前項目中的gradle命令。

如果你執行gradle編譯這個項目。很可能遇到這樣的話

[

Gradle version 1.10 is required. //你當前項目需要用的版本
Current version is 2.3. //你環境用的gradle版本
If using the gradle wrapper,
try editing the distributionUrl in %項目目錄%\gradle\wrapper\gradle-wrapper.properties to gradle-1.10-all.zip

]

或者某些無聊的問題。

))

所以如果你不想出錯的話。一般就用gradlew.bat來操作吧。畢竟別人項目指定這個版本。

gradle-wrapper.properties 這個文件說有用,也可以,說沒有用,也可以

(這個文件控制你用哪一個版本的Gradle來構建項目,

因為某些原因(也跟人品有關系的),突然就用不了,

人品好時就不用換就能用了。

人品不好就需要你更換一下版本號。

至於版本號,你第一次用的話,就只能上去https://services.gradle.org/distributions/這里找一下。(這個是標配的網址),

有些時候慢得可憐。你大可以上官網下載。https://gradle.org/downloads/,下好再丟到相應版本號文件下面就好。

還有其他方法的。不過本人比較懶。而且公司網絡是HK的。所以很快就下載好了。

)

build.gradle 只是把你的Eclipse的信息翻譯在這個配置文件(這玩意就是你在Android studio打包用的)

4.現在你的項目已經整合了Gradle了。現在只能試試能用不。

我本人Eclipse已經裝了StartExplorer 這個插件,所以直接在這個項目下打開CMD,敲入gradle -gui(這個是gradle 源生圖形化工具)

然后你就見到基於你那個build.gradle的所有命令了

(我當時人品不好又遇到這個問題,至於解決方案,上面講了。自己看看上面吧。)

 

5.我假設你已經在剛才的Gradle圖形化工具執行(gradle installBug或者 gradle iB(駝峰命令。你懂的))成功。

那我們就轉移去Android Studio中導入我們這個項目。

這點是有要求的。

一般我們導入項目。就是傻乎乎的導入項目的目錄

如果這樣導入的話。Android Studio就當你的項目是Eclipse項目導入進來(只是不幫你變化項目目錄結構),不過Android Studio只識別一個build.gradle文件。

這是你如果是一個剛剛使用Android studio的同學。 這回你慘了。你肯定花上不止一兩個小時。解決這樣的問題。(心里有千萬只草泥馬跑過,在埋怨Android studio的開發者)

正確的做法是在導入時,點擊你的剛剛在Eclipse導出的build.gradle文件來導入到Android Studio。

這時。同學們就看到你的Eclipse的項目在Android studio這個IDE了。

6.這時看到清楚一點的同學。發現怎么與Eclipse的目錄不一樣呢?

其實實際上目錄上沒有發生改變。只是。你的項目還有問題!

這個問題在下面的 0:Message 一般錯誤都在這里顯示的。

看到上面兩張圖都有一個共同的錯誤吧,因為你當前Android studio使用依賴包是 1.2.3

而你的build.gradle文件依賴着還是下面這句

  dependencies {
  classpath 'com.android.tools.build:gradle:0.12.+'
  }

所以你先把你的 classpath 'com.android.tools.build:gradle:0.12.+' 改為 classpath 'com.android.tools.build:gradle:1.2.3'

這是你再保存。按一下 "Ctrl + F9" 運行一下項目。

這時又出現一個錯誤了。(這里我黏貼一下吧。因為很多人遇到這個錯誤)

Error:Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'.
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

解決辦法就是:就是把你的gradle-wrapper.properties換一下。換一個高級一點的Gradle Version. 這個然后在編譯一下,這時奇跡出現了。

你的Android Studio 項目目錄居然變成Eclipse那樣,這時,如果沒有什么意外。就可以直接點擊那個三角符號。運行項目了。

(雖然在項目工作根目錄中多了不少的文件,不過那些文件不影響項目的開發和打包,所以來說,算可以跨IDE開發了)

本文就說到這里吧。去吧。騷年。好好體驗Android studio吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM