Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在何处放置flavor清单以使其与主AndroidManifest文件合并_Android_Gradle - Fatal编程技术网

在何处放置flavor清单以使其与主AndroidManifest文件合并

在何处放置flavor清单以使其与主AndroidManifest文件合并,android,gradle,Android,Gradle,我有一个gradle项目,其中有香料组和香料。在何处放置AndroidManifest.xml以使其与主清单合并?例如,现在我将AndroidManifest.xml放入“amazon”文件夹中。它的权限比主权限多一点。但这两者并没有融合。这是唯一明显的问题。其他资源文件(如字符串和可绘制文件)会正确合并 我的build.gradle文件是: buildscript { repositories { mavenCentral() } dependencies { classpat

我有一个gradle项目,其中有香料组和香料。在何处放置AndroidManifest.xml以使其与主清单合并?例如,现在我将AndroidManifest.xml放入“amazon”文件夹中。它的权限比主权限多一点。但这两者并没有融合。这是唯一明显的问题。其他资源文件(如字符串和可绘制文件)会正确合并

我的build.gradle文件是:

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.5.6'
}
}
apply plugin: 'android'

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['resources']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    instrumentTest.setRoot('tests')
}

defaultConfig {
    ...
}

signingConfigs {
    debug {
        storeFile file("debug.keystore")
    }

    release {
        ...
    }
}

buildTypes {
    debug {
        debuggable true
        jniDebugBuild true
        signingConfig signingConfigs.debug
        packageNameSuffix ".debug"
        versionNameSuffix ".debug"
    }
    release {
        debuggable false
        jniDebugBuild false
        signingConfig signingConfigs.release
    }
}

flavorGroups "version", "market"


productFlavors {
    amazon {
        flavorGroup "market"
        buildConfig "public static final int COMPILATION = 1;"
    }
    google {
        flavorGroup "market"
        buildConfig "public static final int COMPILATION = 0;"
    }
    lite {
        flavorGroup "version"

        packageName = "package.name.lite"
    }
    full {
        flavorGroup "version"

        packageName = "package.name.full"
    }
}

android.sourceSets.amazon {
    res {
        srcDir "amazon"
    }
    manifest {
        srcFile "amazon/AndroidManifest.xml"
    }
}

android.sourceSets.google {
    res {
        srcDir "google"
    }
}

android.sourceSets.full {
    res {
        srcDir "full"
    }
}

android.sourceSets.lite {
    res {
        srcDir "lite"
    }
}
}
编辑:


看起来清单实际上正在合并(我没有注意到,因为任务添加到了文件的底部)。但它仅在原始清单文件中缺少一个标记并且存在于flavor清单中时才起作用。有时我想覆盖现有标记的属性,但它不起作用。是gradle问题还是我做错了什么?

你应该有各种口味的目录。每种风格都可以在与默认目录相同的位置定义一个android.xml(树中自己的分支除外)。你应该能够定义你想要的口味不同的“片段”

我看到了不同的结果。我看到在不同的构建类型上合并清单文件。不知道为什么会这样。android.xml文件是什么?