在咱们有两个Android Studio工程的状况时,咱们想使用一个做为library工程导入到另外一个工程做为一个module。咱们可使用Android Studio很容易的作到。android
让咱们假设咱们有两个工程:MyApplication和MyLibrary,咱们想导入MyLibrary到MyApplication做为一个module。app
首先咱们须要从MyLibrary工程中找到module中的build.gradle文件,它一般在app目录下,除非你修改了module的名称。gradle
注意builde.gradle文件的plugin是‘com.android.application’。为了使用这个工程做为一个library工程,咱们须要修改成 ‘com.android.library’。文件的内容就像这样:ui
试着sync一下工程,会出现一个错误: Library projects cannot set applicationId(类工程不能设置applicationId)。spa
咱们能够删除gradle文件中的applicationId这行,在defaultConfig 括号里面。code
MyLibrary 工程就修改完了。
而后咱们在MyApplication 工程中导入
MyLibrary 做为一个module。
在MyApplication 工程中, 点击File -> New -> Import Module。 ci
出现一个对话框it
从MyLibrary工程中找到你想要导入的Module目录。一般它是app module除非你给了它另外一个名称。io
若是在MyApplication工程中Module使用相同的名称将会出现错误。为了从一个library工程导入一个修改的Module,咱们能够给它一个版本号在Module名称设置框。class
修改Module的名称为my-library,导入成功。
到这一步差很少已经完成,最后一步是在MyApplication 工程中修改依赖。
不少人会忘了作这一步。
打开工程结构对话框,选择app Module(能够有别的名称),在右侧点击依赖标签。
找到加号并点击它,从弹出菜单中选择module依赖。
而后选择咱们刚从MyLibrary工程中导入的library module。
点击OK,就完成了。
IDE会在MyApplication/app/build/gradle file文件添加好依赖。
依赖部分就像下面的同样:
dependencies { compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) compile ‘com.android.support:appcompat-v7:22.2.0‘ compile project(‘:my-library‘) }
它可能工做的挺好,但这有一个很重要的问题,MyLibrary工程有它本身的依赖。例如,MyApplication和MyLibrary使用support libraries,这有可能会发生冲突。
咱们能够在gradle中经过transitive配置依赖避免这个问题。
咱们能够修改这行
compile project(‘:my-library‘)
为
compile(project(‘:my-library‘)){ transitive=false; }
这个问题就能够避免。Done!
That’s all. Happy coding!