Android ProductFlavors-某些类不编译

Android ProductFlavors-某些类不编译,android,android-productflavors,Android,Android Productflavors,我有一个关于productFlavors的技术问题,也就是说,当我有多个类型的同一个应用程序时,一些特定的类(例如,只有一种风格的类)会根据BuildVariant choosen的类型进行编译。好的,我明白了。但是,我怎样才能引用一个普通类的它们呢?因为除非我选择特殊的风格(使用这个类),否则整个应用程序不会编译。 我只是一个学生,但我认为使用它的人应该有一个更简单的方法,而不是寻找整个代码并禁用其他风格的类 我的代码 在格拉德尔 productFlavors { free {

我有一个关于productFlavors的技术问题,也就是说,当我有多个类型的同一个应用程序时,一些特定的类(例如,只有一种风格的类)会根据BuildVariant choosen的类型进行编译。好的,我明白了。但是,我怎样才能引用一个普通类的它们呢?因为除非我选择特殊的风格(使用这个类),否则整个应用程序不会编译。 我只是一个学生,但我认为使用它的人应该有一个更简单的方法,而不是寻找整个代码并禁用其他风格的类

我的代码

在格拉德尔

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是一个free-flavor(在free-flavor文件夹中创建的),那么当我使用另一个BuilderVariant(pro-flavor)时,如果我不禁用这个活动,整个代码就不能工作(不能编译)。。。 只有一个活动很容易禁用,但是当有多个活动时呢

非常感谢

  • 您可以在pro flavor中创建空横幅。它将不会被使用,但你的应用程序将被编译

  • 您可以在每个版本中创建两个版本的调用活动。在免费版本中,您将在pro–
    Toast.makeText()中拥有
    startActivity()

  • 您可以在pro flavor中创建空横幅。它将不会被使用,但你的应用程序将被编译

  • 您可以在每个版本中创建两个版本的调用活动。在免费版本中,您将在pro–
    Toast.makeText()中拥有
    startActivity()


  • 它起作用了。但是在src/namefravor/packageName中,包的名称必须相同,如果这些packageName不同,代码也不会编译,因为导入也会不同。谢谢你,很有效。但是在src/namefravor/packageName中,包的名称必须相同,如果这些packageName不同,代码也不会编译,因为导入也会不同。非常感谢。