美文网首页
2018-05-21 com.raizlabs.android.

2018-05-21 com.raizlabs.android.

作者: Mylovesunshine | 来源:发表于2018-05-21 13:43 被阅读37次

    https://www.jianshu.com/p/0748b5098ad0
    这段时间在处理app解耦(多module组合),一个module对应一个数据库。这里除了app,还有base、world两个module,每个module均添加引用

    annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${DBFLOW_VERSION}"

    compile "com.github.Raizlabs.DBFlow:dbflow-core:${DBFLOW_VERSION}"

    compile "com.github.Raizlabs.DBFlow:dbflow:${DBFLOW_VERSION}"

    base、world两个module各自有单独的database

    @Database(version = BaseDatabase .VERSION)

    public class BaseDatabase {

    //数据库版本号

    public static final int VERSION =6;
    

    }

    @Database(version = WorldDatabase.VERSION)

    public class WorldDatabase {

    //数据库版本号

    public static final int VERSION =6;
    

    }

    在各自module中使用对应的database,编译没问题,运行时提示

    com.raizlabs.android.dbflow.structure.InvalidDBConfiguration: Model object: com.world.entity.PostItem is not registered with a Database. Did you forget an annotation?

    看官方文档给多module的解决方案:

    apt {

     arguments { 
    
         targetModuleName 'SomeUniqueModuleName'
    
    }
    

    }

    public void initialize(Contextcontext) {

    FlowManager.init(FlowConfig.builder(context)
    
         .addDatabaseHolder(SomeUniqueModuleNameGeneratedDatabaseHolder.class)
    
         .build());
    

    }

    但是现在的问题是 apt 已经不维护了,我们是否还能通过啥方法进行处理呢?

    Android注解使用之注解编译android-apt如何切换到annotationProcessor

    https://www.cnblogs.com/whoislcj/p/6148410.html

    按照上文,修改了base的build.gradle,world同理

    android {

    ...
    
    defaultConfig{
    
        ...
    
        javaCompileOptions {
    
            annotationProcessorOptions {
    
                arguments = [targetModuleName:'Base']
    
            }
    
        }
    
    }
    

    }

    public void initialize(Contextcontext) {

    FlowManager.init(FlowConfig.builder(context)
    
         .addDatabaseHolder(BaseGeneratedDatabaseHolder.class)
    
         .addDatabaseHolder(WorldGeneratedDatabaseHolder.class)
    
         .build());
    

    }

    再次编译运行,问题解决。特此记录下

    作者:freeChange
    链接:https://www.jianshu.com/p/0748b5098ad0
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:2018-05-21 com.raizlabs.android.

          本文链接:https://www.haomeiwen.com/subject/cbmfjftx.html