Android Studio 專案匯入的正確姿勢

四級五次郎發表於2018-07-20

匯入其他人的專案對於我們們開發人員來說是一個基礎,可有些時候匯入了10分鐘20分鐘甚至更久死活一直導不進來。這裡就教大家一個輕鬆便捷的匯入方法,順便跟大家探討一下匯入程式的正確姿勢。

第一步,首先檢視根目錄的build.gradle檔案

拿到專案之後先不著急開啟匯入,我們們先檢視一下根目錄的build.gradle檔案檢視。

  1. classpath 'com.android.tools.build:gradle的版本和你本地的是否一致,如果不一致,直接修改成你的Android Studio版本即可
  2. 如果你的Android Studio使用的是2.x的版本,而要匯入的專案恰巧使用的3.0的版本,這時候就需要註釋掉repositories{}中的google()方法。
  3. 如果你是從Github下載的專案,可能會帶有作者發版時的配置,也需要將其註釋掉:

完整的註釋步驟如下:

apply from: "dependencies.gradle"

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

	// 第三步 ,註釋不相關的版本釋出
        // 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,你們直接改成你們對應版本即可。

到這裡最主要且必須的兩步都做完了,下面就可以匯入專案了,匯入之後還是會報各種錯誤,不要著急我們們慢慢來。

第三步,開啟(匯入)專案,檢視app下的build.grade檔案,並統一修改自己的版本號

Android Studio 專案匯入的正確姿勢

因為Google在3.0的時候廢棄了compile,改為implementation和api了,具體區別可以自行百度。如果你要匯入的專案是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上下載的,你需要註釋掉作者發版的資訊。這裡你可以對比你之前可以執行的專案的build.gradle檔案,把不相關的檔案統統註釋掉,注意依然是註釋哦。

到這裡就可以build一下了,可能還會有報錯,哪裡報錯我們們再接著修改哪裡。

遇到的問題


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

Android Studio 專案匯入的正確姿勢

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

app:transformClassesWithJarMergingForDebug 重複依賴的報錯處理

當使用maven匯入依賴時,可能會出現不同的依賴包含了同一個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 中如何解決重複依賴導致的app:transformClassesWithJarMergingForDebug

In FontFamilyFont, unable to find attribute android:font的報錯處理

Android Studio 專案匯入的正確姿勢

這是因為 compileSdkVersion 和buildToolsVersion 的版本不對應,所以才會出現這種問題,解決辦法就是需要改成對應的版本。具體參照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'
    }
}
複製程式碼

這是我目前總結的關於匯入專案時的方法和錯誤,希望大家可以積極留言說下自己導包的姿勢和補充自己遇到的問題。如果對大家有幫助,還希望大家點贊支援或留言。

相關文章