鑒于網(wǎng)上無論國內(nèi)國外對Eclipse項目轉(zhuǎn)移到Android studio的過程大多都說的模棱兩可,模糊不清,于是寫下這文章讓大家少走彎路。(正文是在下面粗體字)
前段時間,打算使用Github上的開源庫時發(fā)現(xiàn)Github現(xiàn)在遍地都是默認(rèn)碼農(nóng)們用Android Studio了,下面的使用說明都是像這樣:
dependencies {
compile'pl.droidsonroids.gif:android-gif-drawable:1.1.+'
}
“一句話就可以” ,我真是嗶了狗了。
使用Eclipse的我簡直不知所措,只能把代碼硬生生搬到Eclipse了。最惡心的來了,萬一需要引用到V4,V7這些包的話,那你也只能放棄了。Android這些兼容包已經(jīng)不兼容Eclipse了。
于是狠下心來,把Eclipse的項目移到Android Studio上了。
按網(wǎng)上大部分搜到的“如何把Eclipse項目導(dǎo)入到Android Studio”的內(nèi)容來看。大致流程是這樣的。
1)把Eclipse項目export成gradle項目。
2)在Android Studio import剛才那個build.gradle。
這樣導(dǎo)過來真是會出好多問題,我一一列舉下:(由于我不推薦這種方法所以解決問題不詳說了)
1)manifest-merger問題,這個問題主要是項目的引用的jar庫也同時定義theme和label,icon,在application的節(jié)點(diǎn)添加tools:replace=”android:icon, android:theme”,完美解決。
2)編碼問題,有多種情況網(wǎng)上有解決方法。
3)最大的問題來了,compile github的依賴庫失敗。
第三個問題我國內(nèi)國外都翻了個遍,至今找不到如何解決此問題。有人質(zhì)疑是網(wǎng)絡(luò)問題,我用的vpn也不行,后來有人提出是配置問題,我靈機(jī)一動新建了個android studio項目,敲下:
dependencies {
compile'pl.droidsonroids.gif:android-gif-drawable:1.1.+'
}
build成功了。
顯然是我之前那個項目的問題。
于是我開始了正確把Eclipse項目轉(zhuǎn)移到Android Studio的過程。(正文開始了
)
1)在Android Studio新建項目,填寫項目主包名跟原來Eclipse的主包名一樣。假設(shè)主包為com.fu_ckproject。
2)清單文件:AndroidMainfest.xml這個問題基本上可以把內(nèi)容全部覆蓋過來。
3)java代碼文件:把Eclipse src的包復(fù)制過來,這里詳細(xì)說明一下,程序主包在創(chuàng)建項目的時候已經(jīng)自動生成了。這里是com.fu_ckproject這個包,那么首先把Eclipse的這個包的java文件copy過去。然后仿照Eclipse的包結(jié)構(gòu),在Android Studio的java目錄下new-package-輸入跟Eclipse相同的包名,然后把java文件copy到對應(yīng)的包里面。注意不要直接從Eclipse copy過去,包名會丟失的。你可以試一下。
4)布局資源文件:Eclipse res下的drawbale ,layout,drawbale-hdpi,values等,copy到Android Studio的res目錄下就好了。
4)jar庫和so庫:在Android Studio 切換成“project”模式,展開找到libs目錄,按Eclipse下libs的一樣把所有jar庫和so庫復(fù)制過來,正常來說jar庫文件一般是直接放libs下的,so庫是放armeabi等文件下的。這樣一般就可以了,因為新建項目后build.gradle會有一句:compile fileTree(dir:'libs',include: ['*.jar']),這個可以加載所有jar,而so文件放armeabi就搞定了。
5)build一下,運(yùn)行一下,看有沒有錯誤,如果遇到自定義view的布局“res/...(自定義view類)”這種錯誤的話,改為“...res-auto”就可以了,android studio會自動識別。還有會有找不到什么theme之類的,一般就是你的compileSdk寫的太高了,在build.gradle改為21就好了,如下
defaultConfig {
//? ? ? ? applicationId "XXX.XXXXXX"
applicationId"XXX.XXXXXX"
minSdkVersion10
targetSdkVersion21
versionCode1
versionName"1.0"
}
還有導(dǎo)入V4,V7的包,版本別用最新的,用21的就可以。
這樣的話,就完美地把Eclipse項目變成了Android Studio項目了,compile github 的開源庫也成功了沒有壓力,一個字就是爽!
感覺說了很多廢話,第一次寫關(guān)于android 開發(fā)的文章,大家多多見諒,有什么疑問和建議的可以提出一哈。