Android Studio 項目導(dǎo)入的正確姿勢

導(dǎo)入其他人的項目對于咱們開發(fā)人員來說是一個基礎(chǔ)仙蚜,可有些時候?qū)肓?0分鐘20分鐘甚至更久死活一直導(dǎo)不進(jìn)來耀找。這里就教大家一個輕松便捷的導(dǎo)入方法翔悠,順便跟大家探討一下導(dǎo)入程序的正確姿勢。

第一步野芒,首先查看根目錄的build.gradle文件

拿到項目之后先不著急打開導(dǎo)入凉驻,咱們先查看一下根目錄的build.gradle文件查看。

  1. classpath 'com.android.tools.build:gradle的版本和你本地的是否一致复罐,如果不一致涝登,直接修改成你的Android Studio版本即可
  2. 如果你的Android Studio使用的是2.x的版本,而要導(dǎo)入的項目恰巧使用的3.0的版本效诅,這時候就需要注釋掉repositories{}中的google()方法胀滚。
  3. 如果你是從Github下載的項目,可能會帶有作者發(fā)版時的配置乱投,也需要將其注釋掉:

完整的注釋步驟如下:

apply from: "dependencies.gradle"

buildscript {
    repositories {
        jcenter()
        // 第二步咽笼,注釋
       // google()
    }
    dependencies {
        // 第一步,修改版本號
        classpath 'com.android.tools.build:gradle:2.2.2'

    // 第三步 ,注釋不相關(guān)的版本發(fā)布
        // classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
        // classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        // 第二步戚炫,注釋
       // google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

注意剑刑,一定要注意不要輕易刪除某些東西。

第二步双肤,查看gradle\wrapper\gradle-wrapper.properties文件施掏。這里主要是看gradle版本信息

#Thu May 25 13:52:26 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

我這里使用的2.14.1,你們直接改成你們對應(yīng)版本即可茅糜。

到這里最主要且必須的兩步都做完了七芭,下面就可以導(dǎo)入項目了,導(dǎo)入之后還是會報各種錯誤蔑赘,不要著急咱們慢慢來狸驳。

第三步,打開(導(dǎo)入)項目缩赛,查看app下的build.grade文件耙箍,并統(tǒng)一修改自己的版本號

TIM圖片20180719183634.png

因為Google在3.0的時候廢棄了compile,改為implementation和api了酥馍,具體區(qū)別可以自行百度辩昆。如果你要導(dǎo)入的項目是3.X,而你的版本是Android Studio 2.X物喷,那么就需要把所有implementation改回compile卤材。

如以下:
    3.0之前
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'io.reactivex.rxjava2:rxjava:2.1.3'

    3.0之后
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.3'
除以上之外遮斥,還有以下:

 androidTestCompile(前)  
 androidTestImplementation(后)  


 testCompile(前)
 testImplementation (后)

如果你的項目是從Github上下載的,你需要注釋掉作者發(fā)版的信息扇丛。這里你可以對比你之前可以運行的項目的build.gradle文件术吗,把不相關(guān)的文件統(tǒng)統(tǒng)注釋掉,注意依然是注釋哦帆精。

到這里就可以build一下了较屿,可能還會有報錯,哪里報錯咱們再接著修改哪里卓练。

遇到的問題


Failed to resolve:com.android.support:appcompat-v7:報錯處理

20171029144408453.png

這里是因為你的sdk版本低于27版本隘蝎,簡單粗暴的方法是直接修改成你的sdk版本即可。對于該類錯誤襟企,可參考Failed to resolve:com.android.support:appcompat-v7:報錯處理(圖片也來源于此博客)

app:transformClassesWithJarMergingForDebug 重復(fù)依賴的報錯處理

當(dāng)使用maven導(dǎo)入依賴時嘱么,可能會出現(xiàn)不同的依賴包含了同一個jar,在編譯期間不會報錯顽悼÷瘢可一旦run app的時候,就會報

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: xxx.class

解決的方法是在引入依賴的時候把相同的jar去除掉蔚龙。具體可以參照Android Studio 中如何解決重復(fù)依賴導(dǎo)致的app:transformClassesWithJarMergingForDebug

In <declare-styleable> FontFamilyFont, unable to find attribute android:font的報錯處理

TIM圖片20180720112731.png

這是因為 compileSdkVersion 和buildToolsVersion 的版本不對應(yīng)冰评,所以才會出現(xiàn)這種問題,解決辦法就是需要改成對應(yīng)的版本木羹。具體參照In FontFamilyFont, unable to find attribute android:font的報錯處理

錯誤Conflict with dependency 'com.google.code.findbugs:jsr305' 解決方法

具體錯誤是:

Warning:Conflict with dependency 'com.google.code.findbugs:jsr305'. Resolved versions for app (3.0.1) and test app (2.0.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

解決辦法是在項目的app根目錄中build.gradle中加入

android {
    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
    }
}

這是我目前總結(jié)的關(guān)于導(dǎo)入項目時的方法和錯誤甲雅,希望大家可以積極留言說下自己導(dǎo)包的姿勢和補充自己遇到的問題。如果對大家有幫助坑填,還希望大家點贊支持或留言抛人。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市穷遂,隨后出現(xiàn)的幾起案子函匕,更是在濱河造成了極大的恐慌,老刑警劉巖蚪黑,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異中剩,居然都是意外死亡忌穿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門结啼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掠剑,“玉大人,你說我怎么就攤上這事郊愧∑右耄” “怎么了井佑?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長眠寿。 經(jīng)常有香客問我躬翁,道長,這世上最難降的妖魔是什么盯拱? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任盒发,我火速辦了婚禮,結(jié)果婚禮上狡逢,老公的妹妹穿的比我還像新娘宁舰。我一直安慰自己,他們只是感情好奢浑,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布蛮艰。 她就那樣靜靜地躺著,像睡著了一般雀彼。 火紅的嫁衣襯著肌膚如雪印荔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天详羡,我揣著相機(jī)與錄音仍律,去河邊找鬼。 笑死实柠,一個胖子當(dāng)著我的面吹牛水泉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窒盐,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼草则,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蟹漓?” 一聲冷哼從身側(cè)響起炕横,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎葡粒,沒想到半個月后份殿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嗽交,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年卿嘲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夫壁。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡拾枣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梅肤,我是刑警寧澤司蔬,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站姨蝴,受9級特大地震影響俊啼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜似扔,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一吨些、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炒辉,春花似錦豪墅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缝裤,卻和暖如春屏轰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憋飞。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工霎苗, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人榛做。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓唁盏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親检眯。 傳聞我的和親對象是個殘疾皇子厘擂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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