close

在嘗試使用 MVVM 架構時,使用 DataBinding 遇到了此問題

只要我進入目標 Activity 就會 Crush,出現下列錯誤

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxxx.AroundCircleActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class layout
       

而出錯的地方是 setContentView

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_around_circle);
。。。
}

所以我就想到了剛剛對 XML 做的更動如下

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".around_circle_btn.AroundCircleActivity">

    <data>
        <variable
            name="vm"
            type="com.willydeveloper2016.myandroidlab.around_circle_btn.CircleCounterViewModel"
            />
    </data>

我加上了 <layout> & <data> 這兩個 flag

而訊息告訴我們錯在第二行 <layout>

這是由於 AndroidStudio 不知道我們要使用 DataBinding 的原故

所以到 build.gradle (app) 增加下列參數就可以正常運作囉

android {
    dataBinding {
        enabled = true
    }
}

 

 

 

 

 

 

 

 

 

 


arrow
arrow

    顏澤偉 發表在 痞客邦 留言(0) 人氣()