eclipse再見,android studio 新手入門教程(二)項(xiàng)目的導(dǎo)入

上一篇博客介紹了AS的一些常用設(shè)置方法晴圾,當(dāng)工具調(diào)教妥當(dāng)后懦冰,自然就要開始項(xiàng)目的開發(fā)啦灶轰。從零開始新建一個(gè)項(xiàng)目,這個(gè)簡單刷钢,不必多說笋颤,這篇博客會(huì)分享我從舊平臺(tái)eclipse導(dǎo)入項(xiàng)目到AS的過程,以及遇到的一些問題并如何解決内地。開篇先粗略的提一些需要注意的地方伴澄。

結(jié)構(gòu)目錄

和eclipse不同,在android 視圖下的項(xiàng)目目錄分為java阱缓,res和manifests非凌。


測(cè)試
  • manifests目錄存放清單文件,不必多說荆针。
  • java目錄會(huì)默認(rèn)生成三個(gè)文件夾敞嗡,其中test為在本機(jī)執(zhí)行單元測(cè)試代碼的目錄颁糟, androidTest為在Android設(shè)備上執(zhí)行單元測(cè)試代碼的目錄,第一個(gè)不帶后綴的目錄就是存放我們代碼的目錄喉悴。
  • res目錄存放資源文件棱貌,包括圖片資源文件、layout布局等箕肃,這個(gè)和eclispe類似婚脱,但有個(gè)新東西:mipmap目錄,進(jìn)入會(huì)看到里面存放著app的啟動(dòng)圖標(biāo)勺像。查看官方文檔障贸,看到這么一句:


    mipmap文件夾

To avoid these display issues, apps should use the mipmap/ resource folders for launcher icons. The Android system preserves these resources regardless of density stripping, and ensures that launcher apps can pick icons with the best resolution for display.
出處:http://developer.android.com/tools/projects/index.html#mipmap

大意是為了避免設(shè)備顯示問題,app應(yīng)該使用mipmap目錄存放應(yīng)用圖標(biāo)咏删。所以app的啟動(dòng)圖標(biāo)應(yīng)該放置在mipmap文件夾中惹想,至于其他的用處還不是很清楚,之前也遇到過導(dǎo)入eclipse項(xiàng)目時(shí).9圖片報(bào)錯(cuò)督函,網(wǎng)絡(luò)上有人說.9圖應(yīng)該放在mipmap里嘀粱,但是我把.9圖片放到mipmap目錄后仍然不能解決我的問題,最后因?yàn)轫?xiàng)目里.9圖不多辰狡,使用AS的工具重繪后解決了問題锋叨。

庫依賴

eclipse里添加存在本地的第三方庫的方式:

  • 將第三方庫導(dǎo)入workspace- 右鍵項(xiàng)目-android-add Library

AS里添加庫的方式:

  • 導(dǎo)入第三方庫工程到project,第三方庫作為一個(gè)新的module存在于project中- File-project structure宛篇,選擇項(xiàng)目娃磺,添加庫


    這里寫圖片描述

    這里寫圖片描述

    通過對(duì)比可以發(fā)現(xiàn),AS里的project就相當(dāng)于eclipse里的workspace的概念叫倍,module相當(dāng)于eclipse里獨(dú)立的項(xiàng)目偷卧。也可以發(fā)現(xiàn),其實(shí)二者在依賴存在于本地的第三方庫的操作上是類似的吆倦,添加jar包的操作也是一樣听诸,只要把jar包復(fù)制到lib目錄下(切換到Project Files視圖下會(huì)看到Lib目錄),然后同樣操作project structure蚕泽,選擇file dependency后選擇依賴lib庫下剛添加進(jìn)的jar包即可晌梨。

但是如果是添加線上開源庫的話,二者的差距就體現(xiàn)出來了须妻,以往在github上看到優(yōu)秀的開源庫仔蝌,想要應(yīng)用到自己的項(xiàng)目中,就得先把項(xiàng)目下載下來荒吏,然后再添加依賴敛惊,雖然操作不繁瑣,但是我漸漸發(fā)現(xiàn)github上越來越多的開發(fā)者都轉(zhuǎn)向AS司倚,不再單獨(dú)提供eclipse上使用的版本豆混。這個(gè)不贅述篓像,因?yàn)橄朕D(zhuǎn)平臺(tái),能看到這篇博客的朋友皿伺,肯定或多或少都有些同感员辩。總之一句話:google大法好鸵鸥。退eclipse保平安奠滑,趕緊轉(zhuǎn)AS吧。

初識(shí)gradle

在android視圖gradle目錄下妒穴,可以看到有多個(gè)build.gradle宋税,其中后綴module + 項(xiàng)目名 的就是平時(shí)添加第三方庫時(shí)需要配置的gradle文件了,以Github上CircleImageview這個(gè)開源庫為示例讼油,其github主頁上有這么一段代碼:

github上的導(dǎo)入gradle教程

我們唯一要做的杰赛,就是將這段代碼拷貝到項(xiàng)目的gradle-dependencies語句塊下
gradle

然后點(diǎn)擊工具欄圖標(biāo)
Sync Now

之后gradle就會(huì)自動(dòng)從遠(yuǎn)程倉庫下載該庫所需要的jar包等依賴文件,一鍵搞定矮台,簡直不要太爽乏屯!

然而gradle爽是爽,但是后續(xù)也會(huì)提到在導(dǎo)入項(xiàng)目時(shí)因?yàn)間radle版本不同而出現(xiàn)一些麻煩的地方瘦赫。

導(dǎo)入Eclipse項(xiàng)目

上面說了如何依賴庫辰晕,但有些朋友需要開發(fā)舊項(xiàng)目而不是新建項(xiàng)目,光導(dǎo)入eclipse項(xiàng)目時(shí)報(bào)的錯(cuò)都?jí)蚝纫粔亓巳肥鼊e提如何正確的依賴庫含友,所以接下來就示范一下如何正確的導(dǎo)入eclipse的項(xiàng)目。不同項(xiàng)目會(huì)出現(xiàn)的問題不盡相同校辩,這里權(quán)且算是拋磚引玉窘问,給大家提供一些解決問題的思路。
首先在eclipse里宜咒,右鍵-export南缓,導(dǎo)出項(xiàng)目的gradle目錄


導(dǎo)出gradle

選中要導(dǎo)出的項(xiàng)目,一路next荧呐,最后一步建議force overriding一欄打勾(我理解為是已存在gradle文件,選中的話將強(qiáng)制重寫)纸镊,導(dǎo)出成功后會(huì)出現(xiàn)提示:


導(dǎo)出成功提示

請(qǐng)選擇以下目錄: ...build.gradle倍阐,不要導(dǎo)入Eclipse項(xiàng)目本身!

別人我不知道逗威,反正我是照著這個(gè)提示在AS里導(dǎo)入目錄下的build.gradle文件峰搪,然后結(jié)果就把整個(gè)工作目錄里的項(xiàng)目都給導(dǎo)入了(╯‵□′)╯︵┻━┻。什么鬼凯旭!一定是我打開的方式不對(duì)概耻!后來在AS里嘗試


導(dǎo)入1

導(dǎo)入2

導(dǎo)入時(shí)選擇項(xiàng)目本身使套,而不是build.gradle文件,這才導(dǎo)入成功鞠柄。但是不要高興的太早侦高,這才只是麻煩的開始。

問題1 找不到類

問題1

解決辦法:找不到相關(guān)的類厌杜,定位到代碼奉呛,發(fā)現(xiàn)是recyclerview的一些類報(bào)錯(cuò),于是猜測(cè)是因?yàn)橐蕾嚨膯栴}夯尽,在項(xiàng)目依賴庫里添加recyclerview庫瞧壮,問題解決!


添加recyclerview庫

問題2 庫重復(fù)依賴

庫重復(fù)依賴

錯(cuò)誤提示中可以看到是因?yàn)橛卸鄠€(gè)同名的庫報(bào)錯(cuò)匙握,因?yàn)槲覐膃clipse導(dǎo)出項(xiàng)目時(shí)就自帶了supportV7的recyclerview的庫咆槽,而我剛剛有添加了新的recyclerview庫,所以二者重復(fù)依賴了圈纺,解決辦法很簡單秦忿,去除之前的recyclerview依賴即可,問題解決赠堵!

問題3 清單文件合并出錯(cuò) Manifest merger failed

清單文件合并出錯(cuò)

整個(gè)報(bào)錯(cuò)信息是這樣的:

java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 7 declared in library [com.android.support:appcompat-v7:23.2.1] D:\studioCode\NewOneBuy\lib_CircleImageView\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.2.1\AndroidManifest.xmlSuggestion: use tools:overrideLibrary="android.support.v7.appcompat" to force usage

可以看到是是因?yàn)閏ircleimageview的minSdkVersion低于appcompatV7定義的version而導(dǎo)致的清單文件合并出錯(cuò)小渊,提示中也告訴了我們解決方法,只要在circleimageview的清單文件中配置好即可茫叭。


清單文件配置

問題4 程序包不存在

程序包不存在

這個(gè)問題也簡單酬屉,定位到相關(guān)的代碼,使用快捷鍵:ctrl+alt+O揍愁, 去除無效的導(dǎo)包即可呐萨。

問題5 重復(fù)文件(jar包) Duplicate files

重復(fù)jar包

提示信息中也標(biāo)明了是在File1,F(xiàn)ile2中兩個(gè)不同的庫含有相同的文件(jar包)導(dǎo)出出錯(cuò)莽囤,在prodect視圖下查看lib目錄谬擦,可以看到確實(shí)是有重復(fù)文件


重復(fù)文件

解決問題也很簡單:刪除jar包,去除依賴即可


去除依賴

問題6 finished with non-zero exit value 2

  • What went wrong:Execution failed for task ':newOneBuy:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2

這個(gè)沒看懂錯(cuò)誤原因朽缎,但是最后通過在項(xiàng)目的module的build.gradle里添加配置multiDexEnabled true后解決了問題惨远,但是不知其所以然。

defaultConfig {
  applicationId "com.example.newonebuy" 
  minSdkVersion 11 
  targetSdkVersion 21 
  multiDexEnabled true
}

問題7 SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable

出現(xiàn)該問題的原因是在環(huán)境變量未正常配置话肖,右鍵我的電腦 -> 屬性 -> 高級(jí)設(shè)置 -> 環(huán)境變量

  1. 添加 ANDROID_HOME北秽,值為 sdk 的安裝目錄
  2. 在 Path 變量的值后面添加%ANDROID_HOME%/tools;%ANDROID_HOME%/platform-tools;
  3. 重啟 Android Studio

問題8 提示 BuildToolsVersion 或 Gradle Version 錯(cuò)誤

這是因?yàn)楸镜氐?BuildTools 版本和 Gradle 版本與你正在導(dǎo)入的項(xiàng)目的版本不一致導(dǎo)致的問題。關(guān)于如何解決這個(gè)問題在下一篇 eclipse再見最筒,android studio 新手入門教程(三)Github(.ignore忽略規(guī)則)的使用 里有講到贺氓,請(qǐng)移步觀看。

在導(dǎo)入之前床蜘,看著一行又一行紅彤彤的報(bào)錯(cuò)我的內(nèi)心是崩潰的辙培,但其實(shí)只要耐著性子根據(jù)提示逐個(gè)排查蔑水,遇到不懂的就谷歌,畢竟這都是些很初級(jí)的問題扬蕊,總是會(huì)解決的搀别。最近生活里的煩心事不少,在碼代碼時(shí)漸漸能感受到一種很奇妙的感情厨相。在代碼的世界里领曼,1是1,0是0蛮穿,只要你愿意付出心血庶骄,錯(cuò)誤總會(huì)消失,bug總會(huì)修復(fù)践磅。不像現(xiàn)實(shí)世界单刁,很多事情人心難測(cè),即便人心可測(cè)本心也難移府适,很多時(shí)候會(huì)感覺到深深的無力和無可奈何羔飞。

不多扯了,這篇先分享這些吧檐春。下篇博客會(huì)分享一下在AS上使用github進(jìn)行版本控制的一些事逻淌,還有在導(dǎo)入module時(shí)因?yàn)間radle版本而導(dǎo)致的一些問題。

另外最近看到kotlin這門新興的語言似乎挺有意思疟暖,等到下個(gè)項(xiàng)目嘗試一下看kotlin能否高效卡儒、有效的解決一些問題,如果后面有什么收獲俐巴,也有寫出來分享的骨望。

有一分熱發(fā)一分光,寫的文章只要有一個(gè)人看到欣舵,解決了一個(gè)人的問題擎鸠,那文章就有價(jià)值。即使都沒人看缘圈,那就當(dāng)做寫給自己劣光,作為對(duì)所思所學(xué)的一個(gè)總結(jié)吧。

但行善事糟把,莫問前程赎线。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市糊饱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颠黎,老刑警劉巖另锋,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滞项,死亡現(xiàn)場離奇詭異,居然都是意外死亡夭坪,警方通過查閱死者的電腦和手機(jī)文判,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來室梅,“玉大人戏仓,你說我怎么就攤上這事⊥鍪螅” “怎么了赏殃?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長间涵。 經(jīng)常有香客問我仁热,道長,這世上最難降的妖魔是什么勾哩? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任抗蠢,我火速辦了婚禮,結(jié)果婚禮上思劳,老公的妹妹穿的比我還像新娘迅矛。我一直安慰自己,他們只是感情好潜叛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布秽褒。 她就那樣靜靜地躺著,像睡著了一般钠导。 火紅的嫁衣襯著肌膚如雪震嫉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天牡属,我揣著相機(jī)與錄音票堵,去河邊找鬼。 笑死逮栅,一個(gè)胖子當(dāng)著我的面吹牛悴势,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播措伐,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼特纤,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了侥加?” 一聲冷哼從身側(cè)響起捧存,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后昔穴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镰官,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年吗货,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泳唠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宙搬,死狀恐怖笨腥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情勇垛,我是刑警寧澤脖母,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站窥摄,受9級(jí)特大地震影響镶奉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崭放,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一哨苛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧币砂,春花似錦建峭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掌桩,卻和暖如春边锁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背波岛。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工茅坛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人则拷。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓贡蓖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親煌茬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斥铺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容