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

时间:2013-09-19 01:13:11

标签: android gradle

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

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

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

我的问题是

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

1 个答案:

答案 0 :(得分:1)

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

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

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


  3. 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/添加到构建路径。