我通过build.gradle在BuildConfig中添加一些属性,如下所示
release_prod{
buildConfig "public static final String ENVIRONMENT = \"prod\";"
}
release_dev{
buildConfig "public static final String ENVIRONMENT = \"dev\";"
}
问题是当我从gradle进行构建时,它可以正常工作,但是当我在eclipse中编译项目时,由于该变量在BuildConfig中不存在,我会收到错误消息。
我的问题是
最佳答案
创建我自己的
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/
添加到构建路径。