自定义flavor包之间的活动通信

时间:2016-06-16 12:05:57

标签: android android-gradle build.gradle android-productflavors

我想使用自定义Activity1类来表示特定的gradle风格,但是当我尝试从MyActivity /main下的Activity1启动该活动时,它不会#39} ; t将Activity1识别为一个班级。如何构建此通信,以及在/flavor1/main下的清单文件中应包含|--src/ |--flavor1/ |--java/ | |--Activity1.java | |--res/ | |--layout/ | | |--activity1.xml |--main/ |--java/ | |--MyActivity.java |--res/ | |--layout/ | | |--activity_main.xml | |--... |--AndroidManifest.xml 的位置?我的项目结构:

sourceSets {
    flavor1.java.srcDirs 'src/flavor1/java'
}

我正在加入gradle:

MyActivity

来自/main的{​​{1}}我得到:

  

无法解析符号Activity1

P.S。作为另一种选择可能是使用广播接收器,我不确定这是否是一个好方法

2 个答案:

答案 0 :(得分:0)

确保在flavor1窗口中选择了Build Variants特定的构建变体。 (在Android Studio中左下角)。选择名称中包含flavor1字词的任何构建变体,您将在flavor1源集中看到这些类。如果选择了另一个flavor varaint,那么该flavor的sourceset中的类将是可解析的。

答案 1 :(得分:0)

两个活动的xml文件名相同:activity_main.xml

您必须保留不同的名称,因为在资源合并期间,xml将被替换。资源合并合并产品风格和主要源集。