欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解將Eclipse代碼導(dǎo)入到AndroidStudio的兩種方式

 更新時(shí)間:2017年12月20日 09:17:20   作者:GavinCT  
本篇文章主要介紹了詳解將Eclipse代碼導(dǎo)入到AndroidStudio的兩種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

說到使用AndroidStudio,除了新建的項(xiàng)目,我們都會(huì)面臨的問題是原先Eclipse的代碼該怎么導(dǎo)入到AndroidStudio中使用。
這方面相關(guān)的資料還比較少,自己摸索了一下,總結(jié)出這篇博客,希望能讓開發(fā)者少走些彎路。
OK,進(jìn)入正題。

Google為了讓我們更加方便的使用AndroidStudio,提供了兩種導(dǎo)入Eclipse代碼的方式:一種兼容Eclipse,一種是全新的Android Gradle Project.
這里,我們先從兼容模式說起。

兼容模式

這種模式下,保證了Eclipse時(shí)代的代碼目錄結(jié)構(gòu),整體操作和使用和Eclipse也差不多。

最重要的,當(dāng)你使用AndroidStudio時(shí),你或者其他人也可以方便的使用Eclipse,互不干擾。

實(shí)現(xiàn)步驟

1. 從Eclipse中導(dǎo)出Gradle build files

在Eclipse菜單中 File --> Export-->Generate Gradle build files

接下來會(huì)到達(dá)警告界面,這里會(huì)提示AndroidStudio可以直接導(dǎo)入ADT的工程,先過,后面有直接導(dǎo)入的講解。

選中你的項(xiàng)目工程,包括主工程和庫工程(Library)。

確認(rèn)生成

2. 修改導(dǎo)出文件參數(shù)

導(dǎo)出后,由于adt很久沒更新,需要手動(dòng)改一些參數(shù),才能保證正常使用。

為了保證能夠講解的更清晰,下面分情況講解一下:

沒有庫工程,只有主工程

這種情況下你看到的目錄是這樣的

首先需要更改的是 build.gradle 文件

AndroidStudio 1.0 ~ 1.0.2 使用的都是 Android Gradle plugin 1.0.0,因此需要將圖中紅框內(nèi)的 0.12.+ 改為 1.0.0

然后還需要更新Gradle版本,指定為所需要的2.2.1

在 /gradle/wrapper/gradle-wrapper.properties里面

含有庫工程

其實(shí)改動(dòng)方法和上面一樣,只需要注意是改動(dòng)整個(gè)項(xiàng)目的build.gradle和 /gradle/wrapper/gradle-wrapper.properties。

而不要嘗試去主工程或者庫工程里面找build.gradle

3. 導(dǎo)入AndroidStudio

進(jìn)入到AndroidStudio中,選擇導(dǎo)入非AndroidStudio工程

找到需要導(dǎo)入的工程目錄,可以看到圖標(biāo)和Eclipse創(chuàng)建的工程不一樣。

點(diǎn)擊OK,進(jìn)入漫長的加載過程,之后就可以正常使用了。

已經(jīng)創(chuàng)建過工程的打開AndroidStudio會(huì)直接進(jìn)入以前的工程

這時(shí)候可以選擇File-->Import Project, 選中后點(diǎn)擊ok

兼容模式下的bug

使用IDE的打包:

在兼容模式只打主工程的,庫工程沒有加入到apk中,導(dǎo)致無法正常運(yùn)行。

截止到1.0.2,AndroidStudio依然存在這個(gè)bug。

因?yàn)檫@個(gè)bug的存在,你在兼容模式可以使用AndroidStudio編程,打包時(shí)開啟Eclipse。

OK,兼容模式介紹到這里。 我們開始介紹主角: Android Gradle Project。 這里必須說明的是Google更希望我們使用這種方式,如果沒有什么團(tuán)隊(duì)的壓力,還是使用這種吧。

使用新的目錄結(jié)構(gòu)

轉(zhuǎn)換目錄結(jié)構(gòu)

打開Import

新用戶:

老用戶: File-->Import Project

直接找到原有的Eclipse工程單一工程直接導(dǎo)入即可。

有庫工程的需要注意,導(dǎo)入一定要指向主工程,而不是整個(gè)項(xiàng)目的目錄。指向項(xiàng)目目錄是無法進(jìn)行轉(zhuǎn)換的。

指定目標(biāo)路徑

這個(gè)地方需要詳細(xì)說一下


這里上面兩個(gè)選項(xiàng)暫且不說,勾選上。

最后一項(xiàng)提一下: 將Module名創(chuàng)建為camelCase風(fēng)格。

駝峰式,這個(gè)搞Java的都會(huì)熟悉,camelCase表示首字母小寫的駝峰式風(fēng)格,CamelCase表示首字母大寫的駝峰式風(fēng)格。
不勾選這個(gè)選項(xiàng)意味著你原先的工程名是啥樣,轉(zhuǎn)換完就是啥樣。

這里的AndroidStudio會(huì)去分析Eclipse工程下的. project文件,里面的name就是你在Eclipse中看到的工程名。(沒有此文件時(shí)會(huì)使用此工程的文件夾名。)


當(dāng)然也有例外,比如countly-sdk-android轉(zhuǎn)換完就成了countlysdkandroid,下劃線我就不知道了,這個(gè)沒有再仔細(xì)研究規(guī)則,不過CamelCase會(huì)保持正常。

這里我比較喜歡讓Module首字母大寫(不知道為啥看這首字母小寫難受),原來的工程就是CamelCase風(fēng)格,我就不勾選了。
當(dāng)然如果這里沒注意直接轉(zhuǎn)換成了camelCase但最后又不喜歡怎么辦? 可以看后面《如何更改Module名稱》部分。
OK,配置完點(diǎn)擊Finish即可

之后需要經(jīng)過一段時(shí)間的轉(zhuǎn)換。成功后可以看到import-summary.txt,這個(gè)文件非常有用,后面會(huì)講到。

到這里,你的應(yīng)用其實(shí)已經(jīng)可以通過AndroidStudio正常編譯,你也可以寫代碼去了。
但我希望你還能繼續(xù)看下去,因?yàn)檫@個(gè)成功后彈出來的import-summary.txt寫了些很重要的東西。

帶你看懂import-summary.txt

Manifest Merging

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。

Ignored Files(這個(gè)最重要)

之所以說這部分重要,是因?yàn)锳ndroidStudio通過這段文字告訴了你,它導(dǎo)入的時(shí)候忽略了哪些文件。
也就是說這部分內(nèi)容,它沒給你拷進(jìn)來,你要是不去自己拷貝,那這部分你新Gradle工程里面就沒有了。
這里選一些典型的ignore文件來看一下:

From SDK:
* proguard-project.txt
* proguard.cfg
From UI:
* cert\
* cert\cert
From CrosswalkWebview:
* ant.properties
* build.xml
From SlidingMenuLibrary:
* LICENSE.txt
* pom.xml

給上面的忽略文件分分類:

  1. 確實(shí)不需要的:混淆文件、ant的ant.properties與build.xml、maven的pom.xml。
  2. 需要再次聲明的: LICENSE.txt。不聲明屬于盜版侵權(quán)啊~~
  3. 自定義文件夾和文件:cert。 這個(gè)文件夾是自己創(chuàng)建的,不屬于Android規(guī)定的目錄,所以AndroidStudio沒給拷貝。

需要留意你的Ignored Files部分,并根據(jù)自己的需要手工拷貝到新工程中。

Replaced Jars with Dependencies & Replaced Libraries with Dependencies

在Replaced Jars with Dependencies部分,有如下文字:

android-support-v4.jar => com.android.support:support-v4:21.0.3
gson-2.3.jar => com.google.code.gson:gson:2.3
joda-time-2.6.jar => joda-time:joda-time:2.6

可以看到j(luò)ar被替換了。 可以看到工程里面沒有了當(dāng)初添加的jar包。那么jar包去哪了呢?

暫時(shí)先留個(gè)懸念。

我們繼續(xù)來看 Replaced Libraries with Dependencies部分

ActionbarLibrary =>
 com.actionbarsherlock:actionbarsherlock:4.4.0@aar
 com.android.support:support-v4:21.0.3

可以看到ActionbarSherlock被替代為了aar(Android ARchive ,jar : Java ARchive)。關(guān)于aar的介紹可以看這里,本文就不再詳細(xì)展開了。

可以看到的是Library和jar都被替換了,可是你在當(dāng)前工程里再也找不到了。這是為什么?

跟我來看下面的操作:

在Module上右擊,選擇Open Module Settings

切換到Dependencies

點(diǎn)擊右側(cè)的加號(hào)添加,選擇Library dependency

可以看到這個(gè)界面:

OK,到這里就可以知道真相了,在AndroidStudio中你可以添加在線的庫或jar包,添加完成后你就可以和平時(shí)一樣正常使用。
而你的同事在打開這個(gè)工程的時(shí)候會(huì)即時(shí)下載,保證你們的代碼都能正常運(yùn)行。

這也是為什么當(dāng)你的工程轉(zhuǎn)換完畢后,有些jar和Library消失的原因。他們被轉(zhuǎn)成在線的了。

Moved Files

這部分在講你的目錄結(jié)構(gòu)變化,基本上可以認(rèn)為他在廢話,沒什么看的必要了。

Next Steps & Bugs

呵呵,略過吧

最后一句

This import summary is for your information only, and can be deleted after import once you are satisfied with the results.

你一旦覺得自己的工程沒問題了,就可以把這個(gè)文件刪除了。

導(dǎo)入AndroidStudio工程注意

通過上面的步驟,你的項(xiàng)目已經(jīng)轉(zhuǎn)換了目錄結(jié)構(gòu),這時(shí)候你可以提交代碼,供其他同事下載使用了。
其他同事把代碼下載下來,他們所需要引入的是一個(gè)Android Gradle Project了。

新用戶

如果項(xiàng)目中有.idea之類的IntelliJ的文件,開始選擇的應(yīng)該是Open an existing Android Studio project,而不是Import Non-Android Studio project。

如果你下載下來的代碼里面只有g(shù)radle的文件,即使還是要選Import Non-Android Studio project。

老用戶依然使用: File-->Import Project

這里需要提醒的是,對于含有庫工程的項(xiàng)目而言, 需要指定整個(gè)項(xiàng)目的目錄,僅僅指定主工程是沒用的。

到這里我們需要停下來總結(jié)一下:

如果你導(dǎo)入的是一個(gè)Eclipse工程,那么指定主工程目錄。AndroidStudio通過分析來幫你完成轉(zhuǎn)換。

如果你導(dǎo)入的是一個(gè)AndroidStudio工程,那么指定整個(gè)項(xiàng)目的目錄 。

附: 如何更改Module名稱

在Module上右鍵refactor--> rename ,當(dāng)然可以看到有快捷鍵shift + F6, 這樣就可以改變Module的名稱了。

但是還沒有結(jié)束,這樣沒有更改引用這個(gè)Module的地方。

如果他是一個(gè)庫工程,你還需要繼續(xù)去查看引用它的地方并進(jìn)行修改。主要是其他Module的Gradle文件。

Tips:

選中Module,ctrl+c即可復(fù)制工程名,在相關(guān)Gradle文件中ctrl+v替換成新的名稱即可。

最后,別忘了,settings.gradle,這里include的module名稱也需要更改。 至此,算是修改結(jié)束。

一切修改完畢,點(diǎn)擊彈出提示中的Sync Now,讓工程重新構(gòu)建


構(gòu)建結(jié)束后就一切正常了。

當(dāng)然你如果對文件夾的名稱也看著不順眼,也可以去修改文件夾名稱,改變后記得重新導(dǎo)入即可。

總結(jié)

以上就是兩種導(dǎo)入的方式的介紹,總體來說第一種適合無奈的時(shí)候提前熟悉AndroidStudio,第二種則是更推薦的方式。
無論采用哪一種,都希望你能盡快的接觸AndroidStudio,體驗(yàn)它的強(qiáng)大。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的@PreAuthorize注解使用詳解

    Java中的@PreAuthorize注解使用詳解

    這篇文章主要介紹了Java中的@PreAuthorize注解使用詳解,@PreAuthorize注解會(huì)在方法執(zhí)行前進(jìn)行權(quán)限驗(yàn)證,支持Spring EL表達(dá)式,它是基于方法注解的權(quán)限解決方案,需要的朋友可以參考下
    2023-10-10
  • Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解Java如何關(guān)閉線程以及線程池

    詳解Java如何關(guān)閉線程以及線程池

    java如何正確關(guān)閉線程以及線程池是一個(gè)高頻的面試題,本文將為大家詳細(xì)介紹實(shí)現(xiàn)的方法與代碼,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • java實(shí)現(xiàn)驗(yàn)證碼類生成中文驗(yàn)證碼

    java實(shí)現(xiàn)驗(yàn)證碼類生成中文驗(yàn)證碼

    java實(shí)現(xiàn)的漢字輸入驗(yàn)證碼,主要包含兩個(gè)類,一個(gè)是生成驗(yàn)證碼,一個(gè)是判斷驗(yàn)證碼輸入是否正確,實(shí)現(xiàn)原理非常簡單,將漢字和干擾線生成圖片并將漢字保存到session,前臺(tái)獲取每次生成驗(yàn)證碼圖片并用文本框值和session值比較,功能就怎么簡單
    2014-01-01
  • MyBatis與Spring整合過程實(shí)例解析

    MyBatis與Spring整合過程實(shí)例解析

    這篇文章主要介紹了MyBatis與Spring整合過程實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系

    這篇文章主要介紹了Java servlet、filter、listener、interceptor之間的區(qū)別和聯(lián)系的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • idea中JRebel不生效問題及解決方案

    idea中JRebel不生效問題及解決方案

    這篇文章主要介紹了idea中JRebel不生效問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • JDK1.8中ConcurrentHashMap中computeIfAbsent死循環(huán)bug問題

    JDK1.8中ConcurrentHashMap中computeIfAbsent死循環(huán)bug問題

    這篇文章主要介紹了JDK1.8中ConcurrentHashMap中computeIfAbsent死循環(huán)bug,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring 使用JavaConfig實(shí)現(xiàn)配置的方法步驟

    Spring 使用JavaConfig實(shí)現(xiàn)配置的方法步驟

    這篇文章主要介紹了Spring 使用JavaConfig實(shí)現(xiàn)配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • java開發(fā)SSM框架具有rest風(fēng)格的SpringMVC

    java開發(fā)SSM框架具有rest風(fēng)格的SpringMVC

    這篇文章主要介紹了java開發(fā)中如何使SSM框架具有rest風(fēng)格的SpringMVC實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10

最新評論