Клас раздзіманне памылак ImageView

Я атрымліваю паведамленне пра памылку InflateException/ClassNotFoundException перыядычна. Я бачыў аналагічныя памылкі да таго, у SO, але яны былі выкліканыя арфаграфічнымі памылкамі. Я прапісаная «ImageView» правільна, так што я не ведаю, што выклікае памылку.

Код, дзе адбываецца памылка:

v = View.inflate(getContext(), R.layout.event_show_row_layout, null);

Вось макет XML:

<?xml version="1.0" encoding="utf-8"?>


    

        

        
    

    

        
    

    

        

        

        
    

    

        <button
            android:id="@+id/commentButton"
            android:layout_width="84dp"
            android:layout_height="24dp"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dp"
            android:background="@drawable/es_comment_btn" />

        <button
            android:id="@+id/buttonLike"
            android:layout_width="84dp"
            android:layout_height="24dp"
            android:layout_marginLeft="5dp"
            android:layout_toRightOf="@id/commentButton"
            android:background="@drawable/es_like_btn" />

        <button
            android:id="@+id/buttonNumberLike"
            android:layout_width="wrap_content"
            android:layout_height="24dp"
            android:layout_gravity="center"
            android:layout_marginLeft="5dp"
            android:layout_toRightOf="@id/buttonLike"
            android:background="@drawable/like_counter"
            android:textColor="@android:color/white"
            android:textSize="12sp" />

        <button
            android:id="@+id/buttonDelete"
            android:layout_width="38dp"
            android:layout_height="24dp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:background="@drawable/es_more_btn" />
    

    

    


Вось часопіс памылак:

E/AndroidRuntime(15849): FATAL EXCEPTION: main
E/AndroidRuntime(15849): android.view.InflateException: Binary xml file line #36: Error inflating class ImageView
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.createViewFromTag(LayoutInflater.java:454)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.rInflate(LayoutInflater.java:737)
E/AndroidRuntime(15849):    at  org.holoeverywhere.LayoutInflater.rInflate(LayoutInflater.java:740)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.java:542)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.java:492)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.java:487)
E/AndroidRuntime(15849):    at android.view.View.inflate(View.java:8807)
E/AndroidRuntime(15849):    at com.mypackage.adapters.PostAdapter.getPostView(PostAdapter.java:283)
E/AndroidRuntime(15849):    at com.mypackage.adapters.PostAdapter.getView(PostAdapter.java:268)
E/AndroidRuntime(15849):    at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
E/AndroidRuntime(15849):    at android.widget.AbsListView.obtainView(AbsListView.java:1430)
E/AndroidRuntime(15849):    at android.widget.ListView.makeAndAddView(ListView.java:1745)
E/AndroidRuntime(15849):    at android.widget.ListView.fillDown(ListView.java:670)
E/AndroidRuntime(15849):    at android.widget.ListView.fillFromTop(ListView.java:727)
E/AndroidRuntime(15849):    at android.widget.ListView.layoutChildren(ListView.java:1598)
E/AndroidRuntime(15849):    at android.widget.AbsListView.onLayout(AbsListView.java:1260)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at net.simonvt.menudrawer.LeftDrawer.onLayout(LeftDrawer.java:64)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
E/AndroidRuntime(15849):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
E/AndroidRuntime(15849):    at android.view.View.layout(View.java:7175)
E/AndroidRuntime(15849):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
E/AndroidRuntime(15849):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
E/AndroidRuntime(15849):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(15849):    at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(15849):    at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(15849):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15849):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(15849):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(15849):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(15849):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(15849): Caused by: java.lang.ClassNotFoundException: Could not find class: ImageView
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.onCreateView(LayoutInflater.java:607)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.createViewFromTag(LayoutInflater.java:448)
E/AndroidRuntime(15849):    ... 48 more
6
проста дадаў макет XML. дзякуй!
дададзена аўтар dannyroa, крыніца
Памылка падчас інфляцыі можа зыходзіць ад Drawable, які выкарыстоўваецца ў ImageView, памылка друку імя файла ў фармаце PNG, які быў выкарыстаны ў гэтым ImageView таму файл не можа быць знойдзены. Тупы і crptic памылка для «файл не знойдзены». Ўздых, я сапраўды ненавіджу складанасць Android.
дададзена аўтар Codebeat, крыніца
плз таксама дадаць event_show_row_layout макет xml з пытаннем, каб атрымаць больш дапамогі ад нас
дададзена аўтар ρяσѕρєя K, крыніца
Праблема, апісаная ў гэтым пытанні здаецца падобнай. ​​stackoverflow.com/questions/15189957/& hellip;
дададзена аўтар DigCamara, крыніца
Паспрабуйце на прыладзе. Шмат разоў гэта праблема з эмулятарам.
дададзена аўтар Mangesh, крыніца

10 адказы

Для мяне, у адным з маіх layout.xml файлаў, я меў



і ўнутры strings.xml, у мяне было

"@mipmap/tile"

і таму ён паказваў гэта ў Android Studio:



Я думаў, што ўсё будзе працаваць, таму што не было ніякіх памылак і дадатак кампілюецца і пабег. Тым не менш, быў час запуску памылкі, сказаў «android.view.InflateException: Binary xml файл радок # 7: Памылка пры напаўненні класа ImageView».

Пасля таго, як я змяніў АНДРОІД: фон з

android:background="@string/default_picture_location"

у

android:background="@mipmap/tile"

усё працавала.

4
дададзена
Прычына гэтага не працуе, таму што вы мелі двукоссі паміж радкамі тэгамі; яны не патрэбныя.
дададзена аўтар Ken, крыніца
Добра, дзякуй. Можа быць, нешта змянілася з 2015 года.
дададзена аўтар Gene, крыніца

паспрабаваць змяніць

v = View.inflate(getContext(), R.layout.event_show_row_layout, null);

у

v = View.inflate(getApplicationContext(), R.layout.event_show_row_layout, null);
3
дададзена

Памылка падчас інфляцыі можа зыходзіць ад Drawable, які выкарыстоўваецца ў ImageView, у гэтым выпадку:

android:background="@drawable/timeline_image_border"
android:src="@drawable/timeline_image_dummy"

Для таго, каб пазбавіцца ад яго, замяніць усе існуючыя малюнка, спрабуючы іншы выцяжкай.

2
дададзена
Я памылка друку імя файла ў фармаце PNG, які быў выкарыстаны ў гэтым ImageView таму файл не можа быць знойдзены. Тупы і crptic памылка для «файл не знойдзены». Ўздых, я сапраўды ненавіджу складанасць Android.
дададзена аўтар Codebeat, крыніца

У мяне ёсць рэсурсы ў малюем-ж-xxhdpi каталог дакументаў, але не ў малюем-xxhdpi каталог рэсурсаў, з'яўленне гэтай памылкі.

Гэта павінна быць:

res
  drawable-xxhdpi
     aa.png
  drawable-zh-xxhdpi
     aa.png
2
дададзена

Гэта стары пытанне, але я проста натыкнуўся на такую ​​ж праблему. У маім выпадку гэта было выклікана выкарыстаннем Android: адценне атрыбут з селектар , а не колер :


У той час як гэта працуе без праблем SDK 21+ ён выходзіць з ладу ў больш старых версіях ...

Пераключэнне AppCompatImageView і ў Дадатак: адлівам вырашыць гэтую праблему:


1
дададзена

In my case I had the same error, but only when using a device with API < 24 (emulator or physical device).

Гэта было выклікана выкарыстаннем «градыент» ўнутры SVG я імпартаваць.

Памылка не з'яўляецца ў StackTrace, але ён з'яўляецца ў .xml імпартаванага файла SVG:

enter image description here

This causes the app to crash when inflating a View that has this SVG as its source, for APIs < 24.

If you want to use SVG only, you can restrict the use of this resource to APIs >= 24 and remove the gradient for APIs below.

1
дададзена

Я сутыкаўся з гэтай жа праблемай у апошні час і быў у стане вырашыць гэтую праблему, выкарыстоўваючы прыкладання: srcCompat = «@ выцяжцы/ic_black_image_24»

Дакументацыя AppCompat: srcCompat гаворыцца, што -

<�Р> Ён устанаўлівае расцяжымасцю як змест гэтага ImageView. Дазваляе выкарыстанне вектара Drawable пры працы на старых версіях платформы.

Спадзяюся, што гэта дапамагае, калі хто-то наторкаецца на адной і той жа праблемы.

1
дададзена

вы не зачынілі LinearLayout тэг

і, калі ласка, выкарыстоўвайце наступны код для напампоўвання layout.xml

LayoutInflater inflater = getLayoutInflater();
final View v = inflater.inflate(R.layout.your_layout_id, null);
1
дададзена
У гэтым выпадку рэдактар ​​павінен выдаваць памылку, ці не так?
дададзена аўтар midhunhk, крыніца
Часам, з-за паводзін рэдактара ці памылкі ў рэдактары, ён не кідае якую-небудзь памылкі, замест гэтага ён будзе працаваць на эмулятары або прыладзе. але Android вельмі разумныя, чым рэдактар, ён будзе лавіць памылку і Doen не раздуваць xml для стварэння макета.
дададзена аўтар nanithehaddock, крыніца
выкарыстоўвайце наступны код
дададзена аўтар nanithehaddock, крыніца

У мяне была тая ж праблема. мая праблема ўзнікла таму, што я проста выкарыстаў выявы (абразкі) ў папцы "малюем-V24». Я вырашыў яе шляхам капіявання іх у «выцяжцы» тэчку

1
дададзена
гэта мне дапамагло. дзякуй
дададзена аўтар Fo Nko, крыніца
Гэта павінна быць каментар не адказ. Адказы павінны звычайна ўключаць код.
дададзена аўтар Daniel Marcus, крыніца
Я шукаў адказ на гэтую памылку, як адзін дзень, і я не знайшоў нічога на «StackOverflow», таму я адправіў яго ў якасці адказу
дададзена аўтар mohammad Khavarinia, крыніца
Ваш прыём, я шчаслівы, што дапамог каму-то
дададзена аўтар mohammad Khavarinia, крыніца

Для мяне, я скапіяваць маё малюнак у тэчку малюем-V24 і кампілятар не знайшлі яго

Змяніць выгляд Android студыі праецыраваць выгляд

Project View

і выразаць і ўставіць малюнак у тэчку выцяжка

0
дададзена