假设在Android Studio中,有ModuleA和ModuleB,我们希望ModuleA依赖ModuleB,运行时候可能会出现各种问题
1、问题一
问题:
unspecified on project app resolves to an APK archive which is not supported as a compilation dependency
解决办法:出现这个问题的原因在于ModuleB中的build.gradle
apply plugin: 'com.android.application'
这句话告诉了Gradle将ModuleB编译称为apk,导致出现了问题。解决办法,将上面那句话改为
apply plugin: 'com.android.library'
将它编译成库。
2、问题二
问题:
Error: Library projects cannot set applicationId. applicationId is set to "com.example.aroundworld.mysdk" in default config
解决办法:将ModuleB的build.gradle中的下面这句代码删除
applicationId "com.example.aroundworld.mysdk"
3、问题三
问题:
Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : Attribute application@name value=(com.example.aroundworld.workdemo.MyApplication) from AndroidManifest.xml:18:9-38is also present at [WorkDemo:sdk:unspecified] AndroidManifest.xml:19:9-59 value=(com.example.aroundworld.mysdk.MyApp).Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:17:5-49:19 to override.
解决办法是
:在Manifest.xml的application标签下添加tools:replace=”android:name”
有时候还会出现icon或者theme合并的失败,这个时候只需要在tools:replace中加上那些合并失败的就可以了,如
tools:replace="android:label,android:theme,android:icon,android:name"
多个属性用,隔开