Posted on Leave a comment

Multiple modules with Moxy

https://gist.github.com/ekursakov/b8ffe396ae4e00a5400f7f4e3d546f9a

In order to add support for multiple modules:

  1. Add moxy-compiler dependency to each module that uses Moxy.
  2. In each library/subproject that uses a Moxy, you must add an annotation processor argument moxyReflectorPackage.
    For built-in annotationProcessor from gradle android plugin 2.2+:

    android {
        ...
        defaultConfig {
            ...
            javaCompileOptions {
                annotationProcessorOptions {
                    arguments = [ moxyReflectorPackage : 'some.unique.package.name' ]
                }
            }
        }
        ...
    }
    

    For Kotlin with kapt:

    kapt {
        ...
        arguments {
            arg("moxyReflectorPackage", "some.unique.package.name")
        }
    }
    
  3. In application module you must add annotation @RegisterMoxyReflectorPackages to any class (for example application class) and pass all packages that were set in library modules, like this:
    @RegisterMoxyReflectorPackages({"some.unique.package.name.library1", "some.unique.package.name.library2"})
    public class MyApplication extends Application {
    ...