6

我通过 build.gradle 在 BuildConfig 中添加了一些属性,如下所示

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. 如果不是,无论如何我可以在 BuildConfig 之外的单独文件中从 gradle 生成属性。
4

1 回答 1

1
  1. 我没有找到让 Eclipse 生成 BuildConfig 类的简单方法。

  2. 我主要使用 Eclipse ADT 进行开发,然后使用 Gradle 发布不同的风格,所以我想出了以下解决方案:

    创建我自己的CustomBuildConfig类,将其添加到 Eclipse 构建路径并使用 GradlesourceSets选择此类的不同版本。


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/到构建路径。

于 2013-12-17T15:54:17.617 回答