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

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

问题是当我从gradle进行构建时,它可以正常工作,但是当我在eclipse中编译项目时,由于该变量在BuildConfig中不存在,我会收到错误消息。

我的问题是
  • 有没有一种方法可以在BuildConfig中添加一些变量,以便在构建时从eclipse生成它,所以
  • 如果不是,是否仍然可以从Gradle生成属性,而不是BuildConfig。
  • 最佳答案

  • 我没有找到使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/添加到构建路径。

    07-24 09:48
    查看更多