Android 如何在productFlavors中管理两个不同的applicationId?

Android 如何在productFlavors中管理两个不同的applicationId?,android,android-productflavors,android-build-flavors,Android,Android Productflavors,Android Build Flavors,我需要在一个项目中管理两个不同的客户机代码,所以我使用了productFlavors并为每个客户机定义了flavor 现在的问题是源代码库对于两者都是相同的,但是需要定义不同的applicationIdlike com.abc com.def 如何使味道保持一致,使appId和appId的代码保持一致?添加代码块集applicationId,如下所示: productFlavors { abc { resValue "string", "build_typ

我需要在一个项目中管理两个不同的客户机代码,所以我使用了productFlavors并为每个客户机定义了flavor

现在的问题是源代码库对于两者都是相同的,但是需要定义不同的
applicationId
like

  • com.abc
  • com.def

  • 如何使味道保持一致,使appId和appId的代码保持一致?

    添加代码块集
    applicationId
    ,如下所示:

    productFlavors {
            abc {
                resValue "string", "build_type", "Version " + defaultConfig.versionName
                applicationId "com.abc"
            }
            def {
                resValue "string", "build_type", "Version " + defaultConfig.versionName
                applicationId "com.def"
            }
    

    添加代码块集
    applicationId
    ,如下所示:

    productFlavors {
            abc {
                resValue "string", "build_type", "Version " + defaultConfig.versionName
                applicationId "com.abc"
            }
            def {
                resValue "string", "build_type", "Version " + defaultConfig.versionName
                applicationId "com.def"
            }
    

    Android将为所有构建变体之间要共享的所有内容创建
    main/
    源代码集和目录,因此无需在您的案例中创建新的源代码集

    您还可以对不同的构建变体使用
    applicationIdSuffix
    ,在计算变体的最终应用程序id时,将其附加到“基本”应用程序id

    例如:-

    flavorDimensions "appMode"
    
    productFlavors {
    
        free {
            dimension "appMode"
            applicationIdSuffix ".free" //the application id of 'free' is com.example.com.free
        }
        paid {
            dimension "appMode"
            applicationIdSuffix ".paid"//the application id of 'free' is com.example.com.paid
        }
    }
    
    applicationIdSuffix将附加到包名称(基本应用程序id)之后,
    com.example.com
    是上述示例中的包名。

    Android将为所有构建变体之间要共享的所有内容创建
    main/
    源代码集和目录,因此无需在您的案例中创建新的源代码集

    您还可以对不同的构建变体使用
    applicationIdSuffix
    ,在计算变体的最终应用程序id时,将其附加到“基本”应用程序id

    例如:-

    flavorDimensions "appMode"
    
    productFlavors {
    
        free {
            dimension "appMode"
            applicationIdSuffix ".free" //the application id of 'free' is com.example.com.free
        }
        paid {
            dimension "appMode"
            applicationIdSuffix ".paid"//the application id of 'free' is com.example.com.paid
        }
    }
    
    applicationIdSuffix将附加到包名称(基本应用程序id)之后,
    com.example.com
    是上面示例中的包名。

    您在谈论哪些代码?您的代码如何依赖于应用程序id?您只需向applicationId添加后缀,如下所示
    applicationIdSuffix“。测试“
    。您还可以通过右键单击app module并创建新的java文件夹手动执行此操作,然后在该文件夹中创建新的java文件夹package@Khemraj简单的问题,比如说两位顾客。1.苹果(com.au.Apple)2。谷歌(com.uk.Google)的项目代码将保持不变,只是两者的徽标都将更改。在这种情况下,我将如何定义上面的applicationId,以便两者都可以使用公共代码。您在谈论哪些代码?您的代码如何依赖于应用程序id?您只需向applicationId添加后缀,如下所示
    applicationIdSuffix“。测试“
    。您还可以通过右键单击app module并创建新的java文件夹手动执行此操作,然后在该文件夹中创建新的java文件夹package@Khemraj简单的问题,比如说两位顾客。1.苹果(com.au.Apple)2。谷歌(com.uk.Google)的项目代码将保持不变,只是两者的徽标都将更改。在这种情况下,我将如何定义上面的applicationId,以便两者都可以使用公共代码。包名是什么?我希望这两种味道都使用通用代码。我不想为这两种风格制作单独的软件包。只需定义
    applicationId“packageName”
    两种风格的代码都将保持不变,只需在制作APK时选择“味道”即可设置软件包名称软件包名称是什么?我希望这两种味道都使用通用代码。我不想为这两种风格制作单独的软件包。只需定义
    applicationId“packageName”
    两种风格的代码都将保持不变,只需在制作APK时选择“风格”即可设置软件包名称