Fresco: android.view.InflateException: Binary XML file line #40: Error inflating class com.facebook.drawee.view.SimpleDraweeView

Created on 6 Sep 2016  路  7Comments  路  Source: facebook/fresco

09-05 18:08:08.701: E/AndroidRuntime(25531): android.view.InflateException: Binary XML file line #40: Error inflating class com.facebook.drawee.view.SimpleDraweeView
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.createView(LayoutInflater.java:639)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.rInflate(LayoutInflater.java:812)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.rInflate(LayoutInflater.java:815)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.inflate(LayoutInflater.java:510)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.inflate(LayoutInflater.java:420)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.LayoutInflater.inflate(LayoutInflater.java:371)
09-05 18:08:08.701: E/AndroidRuntime(25531): at io.moodbox.module.mood.adapter.MoodTimelineListAdapter.getView(MoodTimelineListAdapter.java:68)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.AbsListView.obtainView(AbsListView.java:2572)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.ListView.makeAndAddView(ListView.java:1953)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.ListView.fillDown(ListView.java:754)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.ListView.fillFromTop(ListView.java:819)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.ListView.layoutChildren(ListView.java:1748)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.AbsListView.onLayout(AbsListView.java:2332)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:543)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.onLayout(LinearLayout.java:1722)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.LinearLayout.onLayout(LinearLayout.java:1722)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.View.layout(View.java:16112)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewGroup.layout(ViewGroup.java:5185)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2525)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2217)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1314)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6673)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.Choreographer.doCallbacks(Choreographer.java:603)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.Choreographer.doFrame(Choreographer.java:572)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.os.Handler.handleCallback(Handler.java:815)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.os.Handler.dispatchMessage(Handler.java:104)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.os.Looper.loop(Looper.java:194)
09-05 18:08:08.701: E/AndroidRuntime(25531): at android.app.ActivityThread.main(ActivityThread.java:5824)
09-05 18:08:08.701: E/AndroidRuntime(25531): at java.lang.reflect.Method.invoke(Native Method)
09-05 18:08:08.701: E/AndroidRuntime(25531): at java.lang.reflect.Method.invoke(Method.java:372)
09-05 18:08:08.701: E/AndroidRuntime(25531): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1010)
09-05 18:08:08.701: E/AndroidRuntime(25531): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
09-05 18:08:08.701: E/AndroidRuntime(25531): Caused by: java.lang.reflect.InvocationTargetException
09-05 18:08:08.701: E/AndroidRuntime(25531): at java.lang.refle

Here is my layout.xml for ListView item(R.layout.lstv_mood_timeline_item)..


xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
>

<LinearLayout android:id="@+id/timelineMoodFlag" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/timelineMoodIcon"
        android:layout_width="@dimen/timeline_mood_card_emoticon_wh"
        android:layout_height="@dimen/timeline_mood_card_emoticon_wh"
        android:contentDescription="@null"
        android:layout_gravity="center"
        android:src="@drawable/mood_good" />
</LinearLayout>


<LinearLayout 
    android:id="@+id/timelineMoodCardTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_toRightOf="@id/timelineMoodFlag"
    android:orientation="horizontal"
    android:padding="@dimen/gap_with_screen" >

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/timelineMoodAuthorAvatar"
        android:layout_width="@dimen/timeline_mood_author_avatar_wh"
        android:layout_height="@dimen/timeline_mood_author_avatar_wh"
        fresco:roundAsCircle="true"/>

    <TextView
        android:id="@+id/timelineMoodAuthorName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />

    <TextView
        android:id="@+id/timelineMoodPostTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />
</LinearLayout>

Here is my ListView adapter getView method snippet:

.line 64 @Override
.line 65 public View getView(int position, View convertView, ViewGroup parent) {
.line 66 MoodTimelineItemHolder holder = null;
.line 67 if (convertView == null) {
.line 68 convertView = inflater.inflate(R.layout.lstv_mood_timeline_item, null);
.line 69 holder = new MoodTimelineItemHolder();

Here is my Application snippet:

public class MoodBoxApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();
    Fresco.initialize(this);
}

}

Here is lib:
bolts-tasks-1.4.0.jar
drawee-v0.13.0.jar
fbcore-v0.13.0.jar
fresco-v0.13.0.jar
imagepipeline-base-v0.13.0.jar
imagepipeline-v0.13.0.jar

environment:
android-21
java 7

needs-details question

Most helpful comment

@minaee Your root cause appears to be the following, which is unrelated to Fresco.

Caused by: java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:1007)

All 7 comments

Thanks for all those details.

Sadly the "Caused by" section at the end of the stack trace is what you need to look at and that's been cut off. It's a reflection call (to read the XML).

Hi guys im getting the same error using the latest version

compile 'com.facebook.fresco:fresco:1.1.0'

I've also tried using some old version but im getting the same error. I've implemented it on listview adapter and this is the stack trace:

android.view.InflateException: Binary XML file line #69: Error inflating class SimpleDraweeView at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at com.investagrams.investagrams.common.adapter.list.SocialPostListAdapter.getView(SocialPostListAdapter.java:62) at android.widget.AbsListView.obtainView(AbsListView.java:2344) at android.widget.ListView.makeAndAddView(ListView.java:1864) at android.widget.ListView.fillDown(ListView.java:698) at android.widget.ListView.fillFromTop(ListView.java:759) at android.widget.ListView.layoutChildren(ListView.java:1673) at android.widget.AbsListView.onLayout(AbsListView.java:2148) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:630) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1799) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131) at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1364) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:846) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1193) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGroup.java:4966) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) at android.widget.FrameLayout.onLayout(FrameLayout.java:508) at android.view.View.layout(View.java:15596) at android.view.ViewGroup.layout(ViewGro

@heyou93 Thanks for sending this through, but you also haven't shown the full stack trace.

In particular I would expect to see a "Caused by" section showing the inner cause. Are you still able to reproduce this?

It would also be useful to see your layout XML.

We're spending this week going over open source issues in Fresco and resolving what we can so if you're able to provide this quickly it would really help us deal with it.

I'm going to close this for now, but if someone can provide the full root cause I'll reopen the issue.

here is my error :

03-01 22:52:43.361 27643-27643/com.shmj.wifidirectdemo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.shmj.wifidirectdemo, PID: 27643
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shmj.wifidirectdemo/com.shmj.wifidirectdemo.MainActivity}: android.view.InflateException: Binary XML file line #0: Error inflating class android.widget.ListView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3124)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3233)
at android.app.ActivityThread.access$1000(ActivityThread.java:197)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6856)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class android.widget.ListView
at android.view.LayoutInflater.createView(LayoutInflater.java:640)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.shmj.wifidirectdemo.MainActivity.onCreate(MainActivity.java:50)
at android.app.Activity.performCreate(Activity.java:6550)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3077)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3233)聽
at android.app.ActivityThread.access$1000(ActivityThread.java:197)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:145)聽
at android.app.ActivityThread.main(ActivityThread.java:6856)聽
at java.lang.reflect.Method.invoke(Native Method)聽
at java.lang.reflect.Method.invoke(Method.java:372)聽
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)聽
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)聽
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)聽
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)聽
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)聽
at com.shmj.wifidirectdemo.MainActivity.onCreate(MainActivity.java:50)聽
at android.app.Activity.performCreate(Activity.java:6550)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3077)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3233)聽
at android.app.ActivityThread.access$1000(ActivityThread.java:197)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:145)聽
at android.app.ActivityThread.main(ActivityThread.java:6856)聽
at java.lang.reflect.Method.invoke(Native Method)聽
at java.lang.reflect.Method.invoke(Method.java:372)聽
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)聽
Caused by: java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:1007)
at android.view.View.(View.java:4260)
at android.view.ViewGroup.(ViewGroup.java:513)
at android.widget.AdapterView.(AdapterView.java:265)
at android.widget.AbsListView.(AbsListView.java:1139)
at android.widget.ListView.(ListView.java:164)
at android.widget.ListView.(ListView.java:160)
at android.widget.ListView.(ListView.java:156)
at java.lang.reflect.Constructor.newInstance(Native Method)聽
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)聽
at android.view.LayoutInflater.createView(LayoutInflater.java:614)聽
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)聽
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)聽
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)聽
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)聽
at com.shmj.wifidirectdemo.MainActivity.onCreate(MainActivity.java:50)聽
at android.app.Activity.performCreate(Activity.java:6550)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3077)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3233)聽
at android.app.ActivityThread.access$1000(ActivityThread.java:197)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:145)聽
at android.app.ActivityThread.main(ActivityThread.java:6856)聽
at java.lang.reflect.Method.invoke(Native Method)聽
at java.lang.reflect.Method.invoke(Method.java:372)聽
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)聽

and here is my layout :

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.shmj.wifidirectdemo.MainActivity">
<Button
    android:id="@+id/startButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/StartButton"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ListView
    android:id="@+id/list_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/startButton"
    app:layout_constraintBottom_toTopOf="@+id/scrollView"
    android:onClick="onClick"
    />

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@id/list_item">

    <TextView
        android:id="@+id/msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:textAlignment="center" />

</ScrollView>

 </android.support.constraint.ConstraintLayout>

@minaee Your root cause appears to be the following, which is unrelated to Fresco.

Caused by: java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:1007)

@kirwan

>
public class WifiP2pDeviceAdapter extends BaseAdapter implements View.OnClickListener {
private Context mContext;
private ArrayList mData;
public WifiP2pDeviceAdapter(Context context,ArrayList list){
mContext = context;
mData = list;

}

@Override
public int getCount() {
    return mData.size();
}

@Override
public Object getItem(int position) {
    return mData.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    /*if (convertView == null){
        convertView = LayoutInflater.from(mContext).inflate(R.layout.item_wifip2p_device,null);
    }*/
    convertView.setTag(position);
    //convertView.setOnClickListener(this);
    TextView textView = (TextView) convertView.findViewById(R.id.msg);
    textView.setText(mData.get(position).toString());

    return convertView;
    }


    @Override
     public void onClick(View v) {
     int position = Integer.parseInt(v.getTag().toString());
     WifiP2pDevice device = mData.get(position);
     switch (device.status){
        case WifiP2pDevice.AVAILABLE:
        case WifiP2pDevice.CONNECTED:
        case WifiP2pDevice.INVITED:
            ((MainActivity)mContext).connect(device);
            break;
        case WifiP2pDevice.FAILED:
        case WifiP2pDevice.UNAVAILABLE:

  Toast.makeText(mContext,String.format(Locale.getDefault(),"status=%d",device.status),
 Toast.LENGTH_SHORT).show();
            break;
     }

  }
  }

this is my adapter class
i cant implement setOnItemClickListener
what do you suggest ?

Was this page helpful?
0 / 5 - 0 ratings