自定义View--IllegalArgumentException: negative width

3 篇文章 0 订阅
3 篇文章 1 订阅

自定义View--IllegalArgumentException: negative width

如何在布局中查看错误

使用自定义View的属性时,可能会发现Layout布局没有报错,但是自定义的控件无法正常显示,运行也会报错,这时候可以查看布局中的报错提示:
在这里插入图片描述

报错提示

java.lang.IllegalArgumentException: negative width   
	  at java.awt.BasicStroke.<init>(BasicStroke.java:194)  
	  at java.awt.BasicStroke.<init>(BasicStroke.java:249)   
	  at android.graphics.Paint_Delegate.getJavaStroke(Paint_Delegate.java:241)   
      at com.android.layoutlib.bridge.impl.GcSnapshot.createCustomGraphics(GcSnapshot.java:791)   
	  at com.android.layoutlib.bridge.impl.GcSnapshot.drawInLayer(GcSnapshot.java:615)   
	  at com.android.layoutlib.bridge.impl.GcSnapshot.draw(GcSnapshot.java:585)   
	  at android.graphics.BaseCanvas_Delegate.draw(BaseCanvas_Delegate.java:556)  
	  at android.graphics.BaseCanvas_Delegate.nDrawArc(BaseCanvas_Delegate.java:267)   
	  at android.graphics.BaseCanvas.nDrawArc(BaseCanvas.java:-1)  
	  at android.graphics.BaseCanvas.drawArc(BaseCanvas.java:93)   
	  at android.graphics.Canvas.drawArc(Canvas.java:1422)   
	  at android.graphics.BaseCanvas.drawArc(BaseCanvas.java:100)   
	  at android.graphics.Canvas.drawArc(Canvas.java:1393)   
	  at com.example.xcroundprogressbardemo.AnswerChartView.drawCircle(AnswerChartView.java:129)   
	  at com.example.xcroundprogressbardemo.AnswerChartView.onDraw_Original(AnswerChartView.java:110)   
	  at com.example.xcroundprogressbardemo.AnswerChartView.onDraw(AnswerChartView.java:-1)   

解决方案

因为自定义View中引用了自定义属性,因此需要在根布局添加相应的命名空间,如果命名空间引入错误,属性引用不报红,但界面依旧报错,下图为正确的命名空间

xmlns:app="http://schemas.android.com/apk/res-auto"

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值