Error inflating class com.facebook.drawee.view.SimpleDraweeView問題的解決

北顧丶發表於2016-07-24

剛剛遇到的一個小問題,在引用 ‘com.facebook.fresco:fresco:0.6.0’ 庫後,在佈局中使用

       <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:background="@null"
            android:id="@+id/drawee_view"
            android:layout_alignParentLeft="true"
            app:viewAspectRatio="1" />
  1. 結果出現了 Binary XML file line #22: Error inflating class
    com.facebook.drawee.view.SimpleDraweeView 的錯誤。

  2. 上網查了一下,報錯的原因是這裡是沒有引用到com.facebook.drawee.view.SimpleDraweeView,所以需要對它進行初始化。

解決方法一

把初始化Fresco調整到setContentView(R.layout.activity_main);的上邊 ,具體如下

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化Fresco
        Fresco.initialize(MainActivity.this);

        setContentView(R.layout.activity_resign);

        initView();
    }

解決方法二

可以寫一個Fresco的APPlication,方法如下:

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;

/**
 * Fresco的初始化
 *
 * Created by Gxs on 2016/7/24.
 */
public class Fresco extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        Fresco.initialize(this);
    }
}

需要在AndroidManifest.xml清單檔案中引用一下,具體如下:

    <application
        android:name=".widget.Fresco" 
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

在application 下新增 上 android:name=”.widget.Fresco” 就可以啦。

相關文章