今天在工程中新建了一个module作为app module的依赖库,在Project Structure中添加依赖之后却报出了如下的错误:
unspecified on project app resolves to an APK archive which is not supported as a compilation dependency
这是因为我们在新建一个module的时候是默认作为一个应用,也就是它是可以直接安装到手机上的(右下角就有一个手机图标),现在我们只需要把它当做一个依赖库来使用,所以再编译生成apk的话就不行了。解决方法只需要在这个module的build.gradle文件中做如下修改:
第一步:修改module类型
在build.gradle文件中,第一句就是apply plugin: 'com.android.application'
,这表示我们的工程会将这个module指定为一个application(应用),而现在我们需要它作为一个依赖库,所以要将它改成apply plugin: 'com.android.library'
,即告诉工程,我们这个module现在是一个lib了。
第二步:删除applicationId
完成第一步后,同步一下gradle,没想到有出现了这样的错误:
Error:Library projects cannot set applicationId. applicationId is set to 'xxx' in default config.
(注:上面的xxx为你新建module的包名)
理解这一句就不需要多好的英语水平了,它的意思很明确:库是不能设置applicationId的,而applicationId是在默认设置中设置的。那么,applicationId在哪里呢?没错,就是在闭包defaultconfig
中,你只要删除它就行了。
完成以上两步,工程就可以顺利跑起来了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。