DSAppTeam / Anchors

:white_check_mark: Anchors 是一个基于图结构,支持同异步依赖任务初始化 Android 启动框架。其锚点提供 "勾住" 依赖的功能,能灵活解决初始化过程中复杂的同步问题。参考 alpha 并改进其部分细节, 更贴合 Android 启动的场景, 同时支持优化依赖初始化流程, 自动选择较优的路径进行初始化。
Apache License 2.0
817 stars 79 forks source link

demo 代码报错 #1

Closed mrme2014 closed 5 years ago

mrme2014 commented 5 years ago

       Project.Builder builder1 = new Project.Builder(PROJECT_1, testTaskFactory);
        builder1.add(TASK_10);
        builder1.add(TASK_11).dependOn(TASK_10);
        builder1.add(TASK_12).dependOn(TASK_11);
        builder1.add(TASK_13).dependOn(TASK_12);
        Project project1 = builder1.build();

        AnchorsManager.getInstance().debuggable(true)
                .addAnchors(TASK_10)
                .start(project1);

start()方法如果传入的是project对象。那么运行起来会有报空指针,日志如下:

Attempt to invoke virtual method 'android.util.SparseArray com.effective.android.anchors.TaskRuntimeInfo.getStateTime()' on a null object reference
        at com.effective.android.anchors.LogTaskListener.logTaskRuntimeInfoString(LogTaskListener.java:28)
        at com.effective.android.anchors.LogTaskListener.onFinish(LogTaskListener.java:23)
        at com.effective.android.anchors.Task.toFinish(Task.java:140)
        at com.effective.android.anchors.Task.run(Task.java:101)
YummyLau commented 5 years ago

       Project.Builder builder1 = new Project.Builder(PROJECT_1, testTaskFactory);
        builder1.add(TASK_10);
        builder1.add(TASK_11).dependOn(TASK_10);
        builder1.add(TASK_12).dependOn(TASK_11);
        builder1.add(TASK_13).dependOn(TASK_12);
        Project project1 = builder1.build();

        AnchorsManager.getInstance().debuggable(true)
                .addAnchors(TASK_10)
                .start(project1);

start()方法如果传入的是project对象。那么运行起来会有报空指针,日志如下:

Attempt to invoke virtual method 'android.util.SparseArray com.effective.android.anchors.TaskRuntimeInfo.getStateTime()' on a null object reference
        at com.effective.android.anchors.LogTaskListener.logTaskRuntimeInfoString(LogTaskListener.java:28)
        at com.effective.android.anchors.LogTaskListener.onFinish(LogTaskListener.java:23)
        at com.effective.android.anchors.Task.toFinish(Task.java:140)
        at com.effective.android.anchors.Task.run(Task.java:101)

目前不支持传递project做为根节点。 start参数里面写传递Task对象不够严谨,在设计的时候想约束下project。 感谢提示。可以构建一个task对象进行处理,可以参考TaskTest。 已经优化了,后续发版

mrme2014 commented 5 years ago

老哥,赶快更新吧。这个项目还是不错滴。我也看了alpha的代码。着实有点鸡肋

YummyLau commented 5 years ago

老哥,赶快更新吧。这个项目还是不错滴。我也看了alpha的代码。着实有点鸡肋

ok的

YummyLau commented 5 years ago

@mrme2014 已经发布1.0.2