Java 如何在同一个android项目的多个资源文件夹之间进行更改?

Java 如何在同一个android项目的多个资源文件夹之间进行更改?,java,android,gradle,Java,Android,Gradle,我有一个android项目,其中我希望有2个(可能更多)资源文件夹(每个不同的外观一个),核心功能是相同的,但它们之间的唯一区别是字符串的颜色、主题和值等(它们都有相同的资源ID,只有不同的内容/值) 我希望能够指定要编译的文件夹 以前我试图在ProductFlavors中指定res.srcdir,但它没有正常工作。使用这些依赖项: android{ ..... sourceSets { main.res.srcDirs += ['src/main/res', 'src/main/re

我有一个android项目,其中我希望有2个(可能更多)资源文件夹(每个不同的外观一个),核心功能是相同的,但它们之间的唯一区别是字符串的颜色、主题和值等(它们都有相同的资源ID,只有不同的内容/值) 我希望能够指定要编译的文件夹


以前我试图在ProductFlavors中指定res.srcdir,但它没有正常工作。

使用这些依赖项:

android{
.....
sourceSets {
    main.res.srcDirs += ['src/main/res', 'src/main/res_apt2']
      }
}

编辑:首先在主/文件夹中手动添加“res_apt2”文件夹,然后添加此行

使用这些依赖项:

android{
.....
sourceSets {
    main.res.srcDirs += ['src/main/res', 'src/main/res_apt2']
      }
}

编辑:首先在主/文件夹中手动添加“res_apt2”文件夹,然后添加此行

使用这些依赖项:

android{
.....
sourceSets {
    main.res.srcDirs += ['src/main/res', 'src/main/res_apt2']
      }
}

编辑:首先在主/文件夹中手动添加“res_apt2”文件夹,然后添加此行

使用这些依赖项:

android{
.....
sourceSets {
    main.res.srcDirs += ['src/main/res', 'src/main/res_apt2']
      }
}

编辑:首先在主/文件夹中手动添加“res_apt2”文件夹,然后添加这一行,这正是香料的用途。定义一个味道和一个与味道同名的源文件夹。这将与“main”处于同一级别,并且将包含“res”


然后,您的项目有与main处于同一级别的文件夹
look1
look2
,其中包含您需要的任何资源,例如
look1/res/values/strings.xml

这正是flavors的用途。定义一个味道和一个与味道同名的源文件夹。这将与“main”处于同一级别,并且将包含“res”


然后,您的项目有与main处于同一级别的文件夹
look1
look2
,其中包含您需要的任何资源,例如
look1/res/values/strings.xml

这正是flavors的用途。定义一个味道和一个与味道同名的源文件夹。这将与“main”处于同一级别,并且将包含“res”


然后,您的项目有与main处于同一级别的文件夹
look1
look2
,其中包含您需要的任何资源,例如
look1/res/values/strings.xml

这正是flavors的用途。定义一个味道和一个与味道同名的源文件夹。这将与“main”处于同一级别,并且将包含“res”


然后,您的项目有与main相同级别的文件夹
look1
look2
,其中包含您需要的任何资源,例如
look1/res/values/strings.xml

阅读本页,内容非常详细:

但简而言之:

Flavors可以覆盖您的主代码和文件,因此,如果您有一个res文件夹,并且想要修改应用程序的外观,那么您只需要在main上方有一个与新res文件夹的Flavor同名的文件夹,名称相同,但内容已修改

这是你的gradle档案

productFlavors {
    vanilla {
        packageName "com.example.multiflavorapp"
    }
    strawberry {
        packageName "com.example.multiflavorapp.strawberry"
    }
}
这是你的目录(不要实际运行它,我还不能发布图片)

app/
|--自由基/
|--src/
|--香草的/
||--java/
||--com/示例/
||--Flavor.java
|--草莓的/
||--java/
||--com/示例/
||--Flavor.java
|--主要/
|--爪哇/
|  |--...
|--res/
|  |--...

|--AndroidManifest.xml
阅读此页面,它非常详细:

但简而言之:

Flavors可以覆盖您的主代码和文件,因此,如果您有一个res文件夹,并且想要修改应用程序的外观,那么您只需要在main上方有一个与新res文件夹的Flavor同名的文件夹,名称相同,但内容已修改

这是你的gradle档案

productFlavors {
    vanilla {
        packageName "com.example.multiflavorapp"
    }
    strawberry {
        packageName "com.example.multiflavorapp.strawberry"
    }
}
这是你的目录(不要实际运行它,我还不能发布图片)

app/
|--自由基/
|--src/
|--香草的/
||--java/
||--com/示例/
||--Flavor.java
|--草莓的/
||--java/
||--com/示例/
||--Flavor.java
|--主要/
|--爪哇/
|  |--...
|--res/
|  |--...

|--AndroidManifest.xml
阅读此页面,它非常详细:

但简而言之:

Flavors可以覆盖您的主代码和文件,因此,如果您有一个res文件夹,并且想要修改应用程序的外观,那么您只需要在main上方有一个与新res文件夹的Flavor同名的文件夹,名称相同,但内容已修改

这是你的gradle档案

productFlavors {
    vanilla {
        packageName "com.example.multiflavorapp"
    }
    strawberry {
        packageName "com.example.multiflavorapp.strawberry"
    }
}
这是你的目录(不要实际运行它,我还不能发布图片)

app/
|--自由基/
|--src/
|--香草的/
||--java/
||--com/示例/
||--Flavor.java
|--草莓的/
||--java/
||--com/示例/
||--Flavor.java
|--主要/
|--爪哇/
|  |--...
|--res/
|  |--...

|--AndroidManifest.xml
阅读此页面,它非常详细:

但简而言之:

Flavors可以覆盖您的主代码和文件,因此,如果您有一个res文件夹,并且想要修改应用程序的外观,那么您只需要在main上方有一个与新res文件夹的Flavor同名的文件夹,名称相同,但内容已修改

这是你的gradle档案

productFlavors {
    vanilla {
        packageName "com.example.multiflavorapp"
    }
    strawberry {
        packageName "com.example.multiflavorapp.strawberry"
    }
}
这是你的目录(不要实际运行它,我还不能发布图片)

app/
|--自由基/
|--src/
|--香草的/
||--java/
||--com/示例/
||--Flavor.java
|--草莓的/
||--java/
||--com/示例/
||--Flavor.java
|--主要/
|--爪哇/
|  |--...
|--res/
|  |--...

|--AndroidManifest.xml
您可以指定要编译的buildVariant,而不是文件夹。您可以指定要编译的buildVariant,而不是文件夹。您可以指定要编译的buildVariant,而不是文件夹。对不起,我已经更新了问题。我已经试过这个了