欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android Studio中多项目共享Library

程序员文章站 2022-07-05 23:23:16
我有两个项目都在使用Android Studio,一个是server项目,另一个是client项目,同时我有一个library在两个项目中都要使用。 一直以来,在两个...

我有两个项目都在使用Android Studio,一个是server项目,另一个是client项目,同时我有一个library在两个项目中都要使用。

一直以来,在两个项目中我都有一份library代码,在一个项目中改动library代码后,都需要手动拷贝到另一个项目。

今天我要创建一个共享的library项目,在两个Android Studio项目都能同时使用。

调整后的目录结构如下:

src/android/ServerProject  
src/android/ClientProject  
src/android/MySahredLibrary  

创建共享library项目

在src/android/MySharedLibrary下创建Library项目

目录结构如下:

MySharedLibrary/src/main/java/...  
               /build.gradle

其中build.gradle文件内容如下:

apply plugin: 'com.android.library'

android {  
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.tinkermode.mylibrary"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {  
    compile fileTree(dir: 'libs', include: ['*.jar']
}

这跟一般Android library项目差不多,唯一的区别是移除了项目最外层的build.gradle,
本来在最外层的build.gradle中需要定义的buildscript等由包含这个library的父项目提供(比如ServerProject)。

在其他项目中使用library项目

首先,我需要在父项目的settings.gradle中引用library项目
// original line
include ':app'
// added this
include ':..:MySharedLibrary'  
然后在使用library的module中,修改 build.gradle,加入如下行:
dependencies {  
  ...
  compile proejct(':..:MySharedLibrary')
}

这样调整后,我们就可以在两个项目*享library了,还是挺简单的。