自定义View--IllegalArgumentException: negative width

如何在布局中查看错误

使用自定义View的属性时,可能会发现Layout布局没有报错,但是自定义的控件无法正常显示,运行也会报错,这时候可以查看布局中的报错提示:
自定义View--IllegalArgumentException: negative width

报错提示

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"

自定义View--IllegalArgumentException: negative width

相关文章:

猜你喜欢
  • 2021-08-06
  • 2022-01-27
  • 2021-09-05
  • 2021-11-15
相关资源
相似解决方案