1. 程式人生 > >Android Studio開發時多工程引用相同Library專案的配置方法

Android Studio開發時多工程引用相同Library專案的配置方法

在使用Android Studio開發的時候,如遇到多個專案引用同一個library(原始碼)的情況時,會遇到在每個專案中都要有一套library的程式碼的情況,對於還在開發和維護中的Library需要頻繁的修改,這對同步就很麻煩,為了解決這個問題,出現了下面的解決方案。

首先:新建一個類庫工程,工程名為AppLibs.Dev。

在該類庫中包含一個公共的類庫appLibs的Module,Module下面的build.gradle配置如下:

/** 宣告是Android類庫 */
apply plugin: 'com.android.library'

android {
    /** 為了能夠支援該庫中的包 */
    useLibrary 'org.apache.http.legacy'

    /** 編譯SDK的版本 */
    compileSdkVersion 25
    /** build tools的版本 */
    buildToolsVersion "25.0.2"
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 25
        versionCode 100
        versionName "1.0.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        debug {
            // debug模式
        }
        release {
            // 是否進行混淆
            minifyEnabled false
            // 混淆檔案的位置
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    /** 移除lint檢查的error */
    lintOptions {
        abortOnError false
    }
}

dependencies {
    /** compile fileTree將libs資料夾中所有的jar檔案全部編譯。該方式和compile files方式選一種即可。 */
    // compile fileTree(include: ['*.jar'], dir: 'libs')
    /** compile files將libs資料夾中單一的jar檔案編譯 */
    compile files('libs/jsch-0.1.53.jar')
    compile files('libs/commons-net-3.3.jar')
    compile files('libs/okhttp-3.2.0.jar')
    compile files('libs/okio-1.6.0.jar')

    /** 測試編譯 */
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    /** 編譯指定包名下面模組 */
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'

    /** 單元測試編譯 */
    testCompile 'junit:junit:4.12'
}

這樣一個類庫工程就建好了,接下來就是引用包含該類庫的工程。

其次:引用該類庫工程。通過Android Studio新建一個TestProject的工程,如下圖。


在該工程中需要做以下三件事:

1、在project的settings.gradle裡面增加紅框圈住部分的程式碼。


2、在module的build.gradle檔案中增加紅框圈住部分的程式碼:



如果該類庫工程中包含多個module,那麼在settings.gradle檔案中原有程式碼後面增加下面的程式碼即可:

include ':AppLibs.Dev:moduleName'

同時在APP module中build.gradle增加相應的模組程式碼即可:

compile project(':AppLibs.Dev:moduleName')



3、點選Android Studio的選單中的Build->Clean Project,完成Clean以後就看到如下圖。

完成如上圖所示以後,表示類庫工程已經被APP工程引用進去了,這樣以後再修改類庫工程中的原始碼,其他引用該類庫的工程中原始碼也就同步修改了。