關於命名規范
- 包名開頭需要小寫,類名開頭需要大寫
正常寫Activity時,可以沒有要求的很嚴格,但是像類似包含了dataBinding的類和包都必須要規范書寫,所以盡量在創建時需要進行規范命名
規定死的,強制規范命名的,類似 layout文件在創建時就不能大寫
項目實現的功能:用databinding實現簡單的 點擊一次Button,textview 顯示數值+1
寫完運行時,同一個項目竟出現兩個導致同一報錯問題的錯誤
報錯:
錯誤1:綁定在了錯誤的屬性中
先把錯誤點列出來:
@{()->data.add()}
這句應該是寫在onClick里面的,但是被我粗心寫在了Button下的text里 粗心導致了我的第一個錯誤
運行時報錯如下:有點顯示不全
CSDN上找到的類似的錯誤:對應我沒顯示全的內容,順便有了解決過程
圖片來源:DataBinding找不到符號,import xxx.xxx.ActivityxxxBindingImpl
其中小圖:
沒錯我就是大佬說的綁定屬性項出現了問題
因為沒有具體的報紅,大佬給出的解決方法是:
點擊一下build中 Found data binding error(s): 右側就是具體報錯的原因
找到問題: 我的項目因為只寫了一個類,就兩個控件,很快就找到是xml中Button的問題
解決:
錯誤2:包名、類名不規范導致的問題
同樣的,先寫出問題所在:
是包名和類名都是不規范的命名,正確的應該是包名小寫,類名大寫
運行時錯誤如下:
這里根據報錯信息去度娘上面找解決方法的時候,一直以為是下面這里的問題,因為這類問題,一般是xml文件這部分的書寫錯誤
<data>
<variable
name="data"
type="com.example.study_test.Six.mViewModel" />
</data>
但是對照了下type和所寫的自定義類名字一樣,位置信息也是對的,排除了寫錯的問題
在CSDN上找到了一篇databingding包名不能大寫?的文章,點進去一看也是我這個問題,但是文章只強調了包名需要大寫,然后將我的包名Six改成了six,一運行,還是不行
又找了很久找到了一篇老外的類似錯誤求助文章,看到他評論里的問題回答,不光是包名,綁定數據的類名也有要求,然后問了下身邊的大佬,說這個是默認的規范,原來是我從一開始學的時候就沒有注意規范這方面的問題
包名小寫,類名大寫,都改了之后,運行,蕪湖~解決
總結:還是要在學習階段規范書寫,很重要