8

I'm trying to use the fresco library. I used it before too and it was working, but now, for some reason I get:

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

My xml file:

<?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>

MyApplication:

public class MyApplication extends Application {

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

I have it in my manifest: android:name=".MyApplication"

The only problem that I'm having is with the draweeview. I can do all of the other stuff such as logging in and taking information.

Zoe
  • 27,060
  • 21
  • 118
  • 148
Bogdan Daniel
  • 2,689
  • 11
  • 43
  • 76

5 Answers5

23

In my case writing Fresco.initialize(this); before setContentView(R.layout.myxml); helped me.

Update:

you have FacebookSdk.sdkInitialize(this); instead of Fresco.initialize(this) in your myapplication

Mounir Elfassi
  • 2,242
  • 3
  • 23
  • 38
4

I was getting this problem in API 19 devices just because I was using drawable vector as placeholder here

fresco:placeholderImage="@drawable/ic_phone"

After changing to PNG my problem was solved.

Dont forget to initialize it in your App as

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

as well as this line in manifest's application

android:name=".App"
Nux
  • 5,890
  • 13
  • 48
  • 74
2

Today I had the same problem. However, I forgot to add the property android:name=".MyApplication" in the AndroidManifest.xml.

user3853134
  • 142
  • 1
  • 11
0

In your Application class write the following line:

Fresco.initialize(this);
Faisal Shaikh
  • 3,900
  • 5
  • 40
  • 77
0

Make sure that you import the right Fresco library and if you do import other Fresco libraries, make sure the other libraries version number is the same with Fresco core library

Mr B
  • 99
  • 1
  • 7