Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse

经常打开别人的工程,发现layout里面使用了一些第三方的自定义控件,Graphical Layout标签里是无法预览页面的,抛出一些异常,上图吧:




对于提示Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse。

或者直接抛出的java.lang.NullPointerException,我们直接找到View层的代码,然后 解决方法是定位触发错误代码段,并将造成此错误的代码行用
if(!isInEditMode()){
//造成错误的代码段
}
包起来,这样在Eclipse中显示时将跳过此代码段而不再出现错误。



这样就可以正常预览layout了。

WindowManager: Window{a06d7b0 u0 Toast} state from COMMIT_DRAW_PENDING to READY_TO_SHOW; reason: commitFinishDrawingLocked 08-05 10:18:39.918 1000 3093 3207 I WindowManager: Window{a06d7b0 u0 Toast} state from READY_TO_SHOW to HAS_DRAWN; reason: performShowLocked 08-05 10:18:39.919 1000 3093 3207 D CoreBackPreview: return markWindowHasDrawn mComposed: false mWaitTransition: false 08-05 10:18:39.919 1000 3093 3207 D ActivityTaskManager: removeStartingWindowAnimation for activity=ActivityRecord{137003130 u0 com.android.settings/.applications.InstalledAppDetails t202 f}} prepareAnimation=true,Callers=com.android.server.wm.ActivityRecord.removeStartingWindow:3390 com.android.server.wm.ActivityRecord.onFirstWindowDrawn:8033 com.android.server.wm.WindowState.performShowLocked:4910 com.android.server.wm.WindowStateAnimator.commitFinishDrawingLocked:402 com.android.server.wm.DisplayContent.lambda$new$8:1138 08-05 10:18:39.919 1000 3093 3207 D ActivityTaskManager: Clearing startingData for activity=ActivityRecord{137003130 u0 com.android.settings/.applications.InstalledAppDetails t202 f}} mStartingData=null mStartingSurface=null 08-05 10:18:39.919 10540 26040 26063 E TestRunner: ----- begin exception ----- 08-05 10:18:39.919 10540 26040 26063 E TestRunner: java.lang.RuntimeException: java.lang.AssertionError 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at com.android.compatibility.common.util.SystemUtil.eventually(SystemUtil.java:359) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at com.android.compatibility.common.util.SystemUtil.eventually(SystemUtil.java:332) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at android.hibernation.cts.AutoRevokeTest.testAutoRevoke_userAllowlisting(AutoRevokeTest.kt:1063) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at java.lang.reflect.Method.invoke(Native Method) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:61) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:148) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:142) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at java.util.concurrent.FutureTask.run(FutureTask.java:343) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at java.lang.Thread.run(Thread.java:1119) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: Caused by: java.lang.AssertionError 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.Assert.fail(Assert.java:87) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.Assert.assertTrue(Assert.java:42) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.Assert.assertFalse(Assert.java:65) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at org.junit.Assert.assertFalse(Assert.java:75) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at android.hibernation.cts.AutoRevokeTest$testAutoRevoke_userAllowlisting$lambda$18$lambda$17$$inlined$eventually$1.run(AutoRevokeTest.kt:752) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: at com.android.compatibility.common.util.SystemUtil.eventually(SystemUtil.java:347) 08-05 10:18:39.919 10540 26040 26063 E TestRunner: ... 11 more 08-05 10:18:39.919 10540 26040 26063 E TestRunner: ----- end exception ----- 08-05 10:18:39.919 1000 3093 3207 D DisplayModeDirector: setAppRequest displayId : 0 modeId: 1 requestedRefreshRate: 0.0 requestedMinRefreshRateRange: 0.0 requestedMaxRefreshRateRange: 120.00001 日志分析
最新发布
08-06
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风口猪炒股指标

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值