通过Gradle添加属性时的Android BuildConfig问题

6
我将通过build.gradle在BuildConfig中添加以下属性:

我在build.gradle中进行如下设置:

release_prod{
       buildConfig "public static final String ENVIRONMENT = \"prod\";"
    }
    release_dev{
           buildConfig "public static final String ENVIRONMENT = \"dev\";"
    }

问题在于当我使用gradle构建时,一切都正常。但是当我在eclipse中编译项目时,出现错误,因为这个变量在gen BuildConfig中不存在。

我的问题是

  1. 有没有办法添加几个变量到BuildConfig中,以便在eclipse中生成?
  2. 如果不能,在gradle中是否可以将属性生成到一个单独的文件中,而不是BuildConfig中?
1个回答

1
我没有找到一种简单的方法来让Eclipse生成BuildConfig类。 我主要使用Eclipse ADT进行开发,然后使用Gradle发布不同的版本,所以我想出了以下解决方案: 创建自己的CustomBuildConfig类,将其添加到Eclipse构建路径中,并使用Gradle sourceSets选择此类的不同版本。
Project/build.gradle中,定义一个特定于口味的额外源文件夹:
android {
  sourceSets {
    release_prod {
        java.srcDirs = ['src', 'flavors/prod/src' ]
    }
    release_dev {
        java.srcDirs = ['src', 'flavors/dev/src' ]
    }
}

生产环境在Project/flavors/prod/src/CustomBuildConfig.java中定义。
package com.example.project;

public class CustomBuildConfig {
    public static final String ENVIRONMENT = "prod";
}

开发环境在 Project/flavors/dev/src/CustomBuildConfig.java 中定义。
package com.example.project;

public class CustomBuildConfig {
    public static final String ENVIRONMENT = "dev";
}

最后在Eclipse中,我只将 Project/flavors/dev/src/ 添加到构建路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接