ProductFlavors - 某些类无法编译

时间:2016-06-23 14:38:00

标签: android android-productflavors

我有关于productFlavors的技术问题,也就是说,当我有一个以上类型的同一个应用程序时,某些特定的类(例如只有一种风格)取决于BuildVariant选择不编译。好的我明白了。但那我怎么能引用他们的普通班?因为除非我选择特定风味(使用这个类),否则整个应用程序都无法编译。 我只是一个学生,但我认为使用它的人应该有一个更简单的方法,而不是寻找整个代码并禁用其他风格的类......

我的代码

在gradle.build中

productFlavors {
        free {
            applicationId "com.example.flavors.free"
        }

        pro {
            applicationId "com.example.flavors.pro"
        }
    }

在常见活动中,我进行了此验证

public boolean isPro() {
        return "pro".equals(BuildConfig.FLAVOR);
    }

并尝试此代码

if (isPro()) {
            Toast.makeText(this, "Versão Pro", Toast.LENGTH_SHORT).show();
        } else {

//            startActivity(new Intent(getApplicationContext(), BannerActivity.class));

        }

这个BannerActivity特别是一个免费的味道(在免费的味道文件夹中创建),然后当我使用其他BuilderVariant(亲味),如果我不禁用此活动,整个代码不起作用(不编译)... 只有一项活动很容易被禁用,但是当有很多活动时?

非常感谢。

1 个答案:

答案 0 :(得分:0)

  1. 您可以在专业版中创建空的BannerActivity。它将不会被使用,但您的应用程序将被编译。

  2. 您可以在每种风格中制作两种版本的调用活动。在免费版本中,您将获得startActivity(),在亲Toast.makeText()