拥有RoboBinding的产品风味?

时间:2015-12-25 06:18:44

标签: android gradle android-gradle android-productflavors robobinding


我正在尝试使用产品风格实现robobinding,但是在源代码目录下的自定义代码类永远不会被执行。

有没有人尝试过类似这个用例的东西?即使用某种元素粘合剂,然后实施产品口味?

在某个演示项目中,我有以下结构:

-app/src/main/java/demo.app.pkg/MainActivity.java
-app/src/free/java/demo.app.pkg.free/MainActivity.java

build.gradle

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        free {
            applicationId "demo.app.pkg.free"
        }
        paid {
            applicationId "demo.app.pkg.paid"
        }
    }

MainActivity.java类被修改后出现在free flavor下时,它会在构建free flavor的调试/发布时打包。并且执行时也包含自定义代码。

(旁边注意:有人说为了实现具有单个类的不同版本的产品风格,需要有一个包含公共代码的main的src文件夹(但不是具有相同类的类)名称存在于风味的src文件夹中)和其他2个src文件夹,这些文件夹具有相同名称的类等,这些文件将基本上隔离这两种风格。

这不是'我在上面尝试的示例项目的情况下^它完美无缺;即使我在main src文件夹下有相同的命名类。)

现在,问题在于我尝试在已实施robobinding的项目中实现类似的产品风格(如上所示)。 结构如下:

-app/src/main/java/demo.app.pkg/MainActivity.java
-app/src/main/java/demo.app.pkg/MainActivityPresentationalModel.java (class to be replaced by class present under 'free' flavor)
-app/src/main/java/demo.app.pkg/Pojo.java

-app/src/free/java/demo.app.pkg.free/MainActivityPresentationalModel.java

这件事不起作用。只有MainActivityPresentationalModel.java下的课程main才会被执行。

现在,如果有人使用view binders特别是robobinding或SDK's binders(仍处于测试阶段),他们必须意识到我们可以访问表示模型,这本质上是逻辑,我们有setter / getters获取/放置值,以便它们在运行时在UI上得到更新,因此我的动机是让这个类具有产品风格。

非常感谢任何帮助。

参考:
对于第一个示例项目,请查看' Build-It-Bigger'项目在gitHub。

0 个答案:

没有答案