添加模块作为依赖时,不小心出来个从错误
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。
项目中添加module作为依赖的正确姿势:
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
在项目中删除作为依赖的module的正确姿势:
1,
从
Project Structure删除模块依赖,或直接在
build.gradle(module:项目主模块)中的依赖中删除:
compile project
(
':依赖模块名'
)
,
2,sync gradle
3,在settings.gradle中删除模块名,sync now后模块会自动删除消失了.如若还要删除模块源文件,就需要进入项目的文件目录下删除了
在点击
sync now后,会弹出提示,点击ok:
注意,如果先进行3,会出现如下错误,然后继续进行1错误会消失:
推荐阅读: