项目中添加module作为依赖及删除依赖模块的正确姿势
2016年07月13日 10:30:11
阅读数:6224
添加模块作为依赖时,不小心出来个从错误
Error:Dependency UtilsApp:app:unspecified on project myapplication resolves to an APK archive which is not supported as a compilation dependency. File: D:\ProgramFiles(x86)\UtilsApp\app\build\outputs\apk\app-release-unsigned.apk
然后又出来个错误
Error:Library projects cannot set applicationId. applicationId is set to 'com.utils.utilsapp' in default config.
所以总结了一下添加模块作为依赖的正确姿势。
在我的UtilsApp项目中有两个模块,现在我让myapplication模块作为项目核心模块,app模块作为依赖。即为项目myapplication添加依赖模块app:
首先打开打开Project Structure
选择应用的Dependencies,点击右边加号选择3添加模块依赖
选中作为依赖的模块
下面就表示把app模块加入了依赖,点击ok,gradle会自动sync
此时可以打开build.gradle(module:myapplication),可以看到依赖中自动添加了:compile project(':app')
此时gradle会sync出一个错误:Error:Dependency UtilsApp:app:unspecified on project myapplication resolves to an APK archive which is not supported as a compilation dependency. File: D:\ProgramFiles(x86)\UtilsApp\app\build\outputs\apk\app-release-unsigned.apk
意思是说,UtilsApp中的依赖模块app,作为一个完整依赖,在myapplication构建APK时,没有指明,这是不支持的行为。
这是因为需要把build.gradle(module:app)中的:
apply plugin: 'com.android.application'改为:apply plugin: 'com.android.library'
如果此时你认为好了,进行sync gradle,将会再爆出一个错误:
Error:Library projects cannot set applicationId. applicationId is set to 'com.utils.utilsapp' in default config.
意思是说,依赖项中不能设置 applicationId, applicationId是com.utils.utilsapp的默认配置信息,表示项目主模块项的ID。
1,把build.gradle(module:依赖)中的:
apply plugin: 'com.android.application'改为:apply plugin: 'com.android.library'
删除:applicationId "com.utils.utilsapp"
2,从Project Structure添加模块依赖,或直接在build.gradle(module:项目主模块)中的依赖中添加:compile
project(':依赖模块名'),
3,sync gradle
1,从Project
Structure删除模块依赖,或直接在build.gradle(module:项目主模块)中的依赖中删除:compile
project(':依赖模块名'),
2,sync gradle
3,在settings.gradle中删除模块名,sync now后模块会自动删除消失了.如若还要删除模块源文件,就需要进入项目的文件目录下删除了
在点击sync now后,会弹出提示,点击ok:
注意,如果先进行3,会出现如下错误,然后继续进行1错误会消失:
|
|