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

Com*_*Man 6 android gradle

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

release_prod{
       buildConfig "public static final String ENVIRONMENT = \"prod\";"
    }
    release_dev{
           buildConfig "public static final String ENVIRONMENT = \"dev\";"
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我从gradle构建时,它工作正常,但是当我在eclipse中编译项目时,我得到错误,因为gen变量不存在于gen BuildConfig中.

我的问题是

  1. 有没有办法在BuildConfig中添加几个变量,以便它在构建时从eclipse生成
  2. 如果不是,无论如何,我可以在除BuildConfig之外的单独文件中从gradle生成属性.

lou*_*sbl 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' ]
    }
}
Run Code Online (Sandbox Code Playgroud)

生产环境定义在Project/flavors/prod/src/CustomBuildConfig.java:

package com.example.project;

public class CustomBuildConfig {
    public static final String ENVIRONMENT = "prod";
}
Run Code Online (Sandbox Code Playgroud)

开发环境定义在Project/flavors/dev/src/CustomBuildConfig.java:

package com.example.project;

public class CustomBuildConfig {
    public static final String ENVIRONMENT = "dev";
}
Run Code Online (Sandbox Code Playgroud)

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