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.isFriendError: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<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<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
那麼可以忽略