今天在工程中新建了一个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中,你只要删除它就行了。

完成以上两步,工程就可以顺利跑起来了。


lindroid
214 声望13 粉丝

Android中级魔法师