第一次使用产品口味时,我不确定是否需要在每个产品文件夹中都放置完全相同的副本。 src / flavor1 / com / app / pro / company /“所有我的Java文件”。免费版本具有相同的文件结构。我尝试此操作,并收到“在文件” C:\ blah \ blah \ Settings.java中找到重复的类“错误。我在gradle中设置了一个bool,用于文件中的免费版本与付费版本分开这里有任何建议吗?是否有两个版本都使用一个Java文件?
我在gradle中使用buildConfigField("boolean", "demomode", "false")
。
提前致谢!
最佳答案
如果Java文件在某个 flavor 维度中的所有 flavor 之间共享,那么您可以在main
源集中保留一个副本。这样可以减少重复!
如果某个 flavor 维度中的任何 flavor 都需要特定Java文件的定制版本,则必须从main
源集中删除该相同Java文件的副本,并在该 flavor 维度的每个特定于 flavor 的源集中放置适当的定制版本。 。您不能具有Java文件的特定于 flavor 的副本“覆盖” main
副本。
根据您的特定错误,听起来像是
paid
和free
不是同一个 flavor 维度或main
源集中(通常位于src/main
中),您仍然有Java文件的副本。 如果是第一种情况,请确保两种口味都属于同一尺寸。
如果是案例2,请从
main
源集中删除按 flavor 定制的任何文件的副本,并从 flavor 特定的源集中删除在 flavor 之间共享的任何文件的副本(将其保留在共享源集中main
中) )。这样一来,您就可以避免定义BuildConfig
bool(boolean) 值,并利用具有特定口味的类的事实来实现免费和付费模式之间的差异。有关源集的更多背景信息,请参见the docs。
关于java - 使用产品口味时,是否需要针对不同版本的应用程序将Java文件分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49701338/