错误膨胀 class com.facebook.drawee.view.SimpleDraweeView

Error inflating class com.facebook.drawee.view.SimpleDraweeView

我正在尝试使用壁画库。我以前也用过它,它工作正常,但现在,出于某种原因我得到:

Unable to start activity ComponentInfo{com.example.home.template/com.example.home.template.MainActivity}: android.view.InflateException: Binary XML file line #26: Error inflating class com.facebook.drawee.view.SimpleDraweeView

我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:fresco="http://schemas.android.com/apk/res-auto"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">


<com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/profileImage"
        fresco:actualImageScaleType="centerCrop"
        android:layout_width="200dp"
        android:layout_gravity="center_horizontal"
        android:layout_height="200dp" />
</LinearLayout>

我的申请:

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(this);
    }
}

我的清单中有它:android:name=".MyApplication"

我遇到的唯一问题是 draweeview。我可以做所有其他事情,例如登录和获取信息。

就我而言,在 setContentView(R.layout.myxml); 之前写 Fresco.initialize(this); 对我有帮助。

更新:

您的 myapplication

中有 FacebookSdk.sdkInitialize(this); 而不是 Fresco.initialize(this)

今天我遇到了同样的问题。但是,我忘记在 AndroidManifest.xml.

中添加 属性 android:name=".MyApplication"

在您的应用程序 class 中写入以下行:

Fresco.initialize(this);

我在 API 19 台设备中遇到这个问题只是因为我在这里使用可绘制矢量作为占位符

fresco:placeholderImage="@drawable/ic_phone"

更改为 PNG 后我的问题就解决了。

不要忘记在您的 App 中将其初始化为

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        Fresco.initialize(this)
    }
}

以及清单应用程序中的这一行

android:name=".App"

确保导入正确的 Fresco 库,如果导入其他 Fresco 库,请确保其他库版本号与 Fresco 核心库相同