1. 程式人生 > >Data Binding的報錯集合: 例如Error:(10, 54) 錯誤: 程式包com.kodulf.recyclerviewdatabinding.databinding不存在

Data Binding的報錯集合: 例如Error:(10, 54) 錯誤: 程式包com.kodulf.recyclerviewdatabinding.databinding不存在

報錯0:找不到MainActivityBinding

官網上面是:MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);

//應該是,官網上面有問題了,應該是ActivityMainBinding,而不是MainActivityBinding

感謝HoHohong的提醒,應該是這樣的:這個Binding類是根據XML名字生成的,官網上用MainActivityBinding是因為它的XML名字為main_activity.xml;但我們在AS新建專案時名字預設為activity_main,所以才得用ActivityMainBinding


報錯1程式包com.kodulf.recyclerviewdatabinding.databinding不存在

C:\AdroidProjects\RecyclerViewDataBinding\app\src\main\java\com\kodulf\recyclerviewdatabinding\MainActivity.java

Error:(10, 54) 錯誤: 程式包com.kodulf.recyclerviewdatabinding.databinding不存在
C:\AdroidProjects\RecyclerViewDataBinding\app\src\main\res\layout\activity_main.xml
Error:(18, 35) Could not find accessor com.kodulf.recyclerviewdatabinding.User.isFriend 
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.

Information:BUILD FAILED

報錯分析:MainActivity.java  裡面出錯的。不能夠匯入 com.kodulf.recyclerviewdatabinding.databinding 這個包,

而com.kodulf.recyclerviewdatabinding.databinding這個包是根據activity_main.xml來自動生成的,

既然找不到這個包,說明activity_main.xml 裡面有問題,

而這個問題又是因為

Error:(18, 35) Could not find accessor com.kodulf.recyclerviewdatabinding.User.isFriend 

所以應該是User的類裡面的isFriend的屬性有問題,

最後我發現了,

我的get方法裡面的對應的isFriend的應該是getIsFriend,而我的方法裡面確實getFriend

報錯2: 與元素型別 "variable" 相關聯的 "type" 屬性值不能包含 '<' 字元。

Error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'.

> org.xml.sax.SAXParseException; systemId: file:/C:/AdroidProjects/RecyclerViewDataBinding/app/build/intermediates/res/merged/debug/layout/activity_main.xml;lineNumber: 8; columnNumber: 45; 與元素型別 "variable" 相關聯的 "type" 屬性值不能包含 '<' 字元。

錯誤的寫成了:

<variable name="userList" type="List<User>"/>

應該寫成:

<variable name="userList" type="List&lt;User>"/>

報錯3:程式包com.kodulf.recyclerviewdatabinding.databinding不存在

C:\AdroidProjects\RecyclerViewDataBinding\app\src\main\java\com\kodulf\recyclerviewdatabinding\MainActivity.java

Error:(10, 54) 錯誤: 程式包com.kodulf.recyclerviewdatabinding.databinding不存在

錯誤: cannot find type argument for User in List

錯誤: cannot generate view binders java.lang.RuntimeException: failure, see logs for details.

  cannot find type argument for User in List

解決方法,寫全路勁

<variable name="userList" type="java.util.List&lt;com.kodulf.recyclerviewdatabinding.User>"/>

報錯4: 如果報錯是:

Source folders generated at incorrect location

Warning:Folder C:\AdroidProjects\XiMaLaYaTing\app\build\intermediates\dataBindingInfo\debug

Warning:Folder C:\AdroidProjects\XiMaLaYaTing\app\build\intermediates\dataBindingInfo\androidTest\debug

Information:3rd-party Gradle plug-ins may be the cause

那麼可以忽略