1、添加新module,编译时出现的问题
Error:Dependency TakePhoto:takephotolib:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. File: E:\code\as\dev\TakePhoto\takephotolib\build\outputs\apk\takephotolib-release-unsigned.apk
解决方法
如果在Android Studio中,有ModuleA和ModuleB,我们希望ModuleA依赖ModuleB,运行时候可能会出现该问题,查看被依赖的ModuleB的build.gradle,里面可以看到:
apply plugin: ‘com.android.application’
这句话告诉了Gradle将ModuleB编译称为application,也就是apk,这就是问题的所在;解决方法:将上面该句改为:
apply plugin: ‘com.android.library’
此时,Gradle将编译称为一个Library,也就是库,运行之后,如果出现这个问题:Error:Library projects cannot set applicationId. applicationId is set to ‘package_name’ in default config.,那是因为一个库不允许设置applicationId,需要将builde.gradle — android — defaultConfig中的applicationId删除;
2、新建的module中自定义Application
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@name value=(com.liji.as.pictureselect.MApplication) from AndroidManifest.xml:6:9-62
is also present at [TakePhoto:takephotolib:unspecified] AndroidManifest.xml:12:9-55 value=(com.liji.takephoto.MApplication).
Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:5:5-20:19 to override.
解决方法
若B为工程Module,A为Application,则在A的AndroidMainifest.xml文件中添加以下两行代码,重新编译即可。
xmlns:tools=”http://schemas.android.com/tools”
tools:replace=”android:name”
<manifest
...
xmlns:tools="http://schemas.android.com/tools">
<application
...
tools:replace="android:name">
...
</application>
</manifest>
关于作者
QQ:275137657
github:https://github.com/crazyandcoder
个人博客:http://crazyandcoder.github.io/