我将尝试制作我的应用的两个版本。
Gradle:
defaultConfig {
applicationId "be.myname.firstapp"
minSdkVersion 15
targetSdkVersion 23 }
productFlavors {
raterate {
applicationId = "be.myname.firstapp"
}
scarsforlife {
applicationId = "be.myname.secondapp"
}
}
我在主文件夹、fistapp文件夹和secondapp文件夹中都有一个AndroidManifest。
fistapp文件夹中的包名是:be.myname.fistapp,secondapp文件夹中的包名是:be.myname.secondapp。
在主文件夹中,我最初使用的是be.myname.firstapp,但这与be.myname.secondapp冲突了。现在我尝试了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="${packageId}">
</manifest>
然后得到了这个:
Attribute manifest@package at AndroidManifest.xml:3:5-27 requires a placeholder substitution but no value for <packageId> is provided.
AndroidManifest.xml Error:
Overlay manifest:package attribute declared at AndroidManifest.xml:3:5-45 value=(be.myname.secondapp)
has a different value=(be.myname.secondapp) declared in main manifest at AndroidManifest.xml:3:5-27
Suggestion: remove the overlay declaration at AndroidManifest.xml and place it in the build.gradle:
flavorName {
applicationId = "be.myname.secondapp"
}
我有点困惑。这个问题应该怎样正确处理呢? :)