0


我正在尝试使用产品风味实现 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,它会在free风味的调试/发布构建时被打包。并执行包含自定义代码。

(另一方面注意:有人说,为了实现具有单个类的不同版本的产品风味,需要有一个 src 文件夹来main包含公共代码(但不是风味的 src 文件夹中存在的具有相同名称的类)和其他 2 个 src 文件夹,它们具有相同名称的类

mainsrc 文件夹下的类。)

现在,当我尝试在已经实现了 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.javamain执行。

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

任何帮助深表感谢。

参考:
对于第一个示例项目,请查看 gitHub 上的“ Build-It-Bigger ”项目。

4

0 回答 0