didi / didi/DoKit

打开 UI 层级功能崩溃

Open
#604 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
20.4k
Forks
3.2k
Avg merge
1d 12h
Merged PRs (30d)
2

Description

自定义 view 的 onDraw 方法有 paint.setColor ,dokit 会使 paint.setColor NPE

> 自定义 view onDraw 部分
```
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

int startX = leftMargin + signalWidth;
int startY;
int stopY = height;

for (int i = 0; i < SIGNAL_NUM; i++) {
if (weakIndex > i) {
signalPaint.setColor(weakColor);
} else if (normalIndex > i) {
signalPaint.setColor(normalColor);
} else {
// 报错部分
signalPaint.setColor(noneColor);
}
...
}
```
> 异常信息
```
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Paint.setColor(int)' on a null object reference
at com.test.ux.SignalView.onDraw(SignalView.java:96)
at android.view.View.draw(View.java:21579)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:86)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.traverseViews(UIPerformanceManager.java:81)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.getViewInfos(UIPerformanceManager.java:68)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.getViewInfos(UIPerformanceManager.java:63)
at com.didichuxing.doraemonkit.kit.uiperformance.UIPerformanceManager.onActivityResumed(UIPerformanceManager.java:108)
at com.didichuxing.doraemonkit.DokitActivityLifecycleCallbacks.onActivityResumed(DokitActivityLifecycleCallbacks.java:91)
at android.app.Application.dispatchActivityResumed(Application.java:461)
at android.app.Activity.dispatchActivityResumed(Activity.java:1296)
at android.app.Activity.onResume(Activity.java:1833)
at androidx.fragment.app.FragmentActivity.onResume(FragmentActivity.java:455)
at com.kiwi.mesh.base.BaseRTKActivity.onResume(BaseRTKActivity.kt:28)
at com.kiwi.mesh.ui.area.MappingAreaActivity.onResume(MappingAreaActivity.kt:190)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1454)
at android.app.Activity.performResume(Activity.java:8050)

```

- 小米8 lite 、MIUI12、Android 10

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.