繁体   English   中英

不同的资源和清单在android gradle中的构建变体中体现

[英]different resources and manifest in build variant in gradle in android

我想对两个不同的构建变体使用相同的源代码,但使用不同的资源和清单。 这是我的build.gradle

apply plugin: 'com.android.application'


android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId 'com.test.project'
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        FV {
            applicationId "com.test.project"
            versionName "1.0"
        }
        AV {
            applicationId "com.test.project"
              versionName "1.0"
        }
    }

    sourceSets.AV {
        manifest.srcFile 'resources/av_res/AndroidManifest.xml'
        res.srcDirs = ['res', 'resources/av_res/res']
    }


    sourceSets.FV {
        manifest.srcFile 'resources/fv_res/AndroidManifest.xml'
        res.srcDirs = ['res', 'resources/fv_res/res']
    }




}
android {
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
}

dependencies {

    compile files('libs/commons-codec-1.9.jar')
    compile files('libs/sdk.jar')
    compile files('libs/libGoogleAnalytics.jar')
}

在这个我得到一个错误:

错误:发现任务':app:checkDebugManifest'的配置存在问题。

为属性“清单”指定的文件“ D:\\ nitin \\ projects \\ FV \\ SFV \\ app \\ src \\ main \\ AndroidManifest.xml”不存在。

请帮忙。

使用productFlavor时,可以为其创建特定的文件夹。 在您的情况下,可以在“主”文件夹旁边创建文件夹“ FV”和“ AV”。

它应该看起来像这样:

src/
   main/
      AndroidManifest.xml
      res/
         ...
   FV/
      AndroidManifest.xml
      res/
         ...
   AV/
      AndroidManifest.xml
      res/
         ...

这样,您将能够删除build.gradle中指定某些目录的代码,因为构建系统会自动检测到它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM