2013-05-22 3 views
4

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

код, где происходит ошибка:

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

Вот макет XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:paddingLeft="10dip" 
     android:paddingRight="10dip" > 

     <TextView 
      android:id="@+id/fromTextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="12sp" 
      android:textStyle="italic" /> 

     <TextView 
      android:id="@+id/timeTextView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="right" 
      android:textSize="12sp" 
      android:textStyle="italic" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/layoutPostImage" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="4dp" > 

     <ImageView 
      android:id="@+id/postImageView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_margin="2dp" 
      android:adjustViewBounds="true" 
      android:background="@drawable/timeline_image_border" 
      android:contentDescription="@string/hello" 
      android:paddingBottom="6dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/timeline_image_dummy" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/wordsRelativeLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/wordsTextView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical|center_horizontal" 
      android:paddingLeft="50dp" 
      android:paddingRight="50dp" 
      android:text="@string/hello" /> 

     <ImageView 
      android:id="@+id/topLeftQuoteImageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp" 
      android:adjustViewBounds="true" 
      android:contentDescription="@string/hello" 
      android:maxHeight="25dp" 
      android:maxWidth="25dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/po_quotes_mobile1" /> 

     <ImageView 
      android:id="@+id/bottomRightQuoteImageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="12dp" 
      android:layout_marginRight="12dp" 
      android:adjustViewBounds="true" 
      android:contentDescription="@string/hello" 
      android:maxHeight="25dp" 
      android:maxWidth="25dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/po_quotes_mobile2" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" > 

     <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" /> 
    </RelativeLayout> 

    <TextView 
     android:id="@+id/commentsTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" 
     android:background="#FFF9F8F1" 
     android:text="@string/hello" 
     android:textColor="@android:color/black" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/spacerTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" /> 

</LinearLayout> 

Вот журнал ошибок:

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 
+2

plz также добавить 'event_show_row_layout' макет xml с вопросом, чтобы получить дополнительную помощь от нас –

+0

только что добавил макет xml. благодаря! – dannyroa

+2

Проблема, описанная в этом вопросе, кажется схожей. http://stackoverflow.com/questions/15189957/why-the-imageview-class-is-not-found – DigCamara

ответ

1

вы не закрыли LinearLayout тег

и, пожалуйста, используйте следующий код для накачивания layout.xml

LayoutInflater inflater = getLayoutInflater(); 
final View v = inflater.inflate(R.layout.your_layout_id, null); 
+0

В этом случае редактор должен выбросить ошибку, не так ли? – midhunhk

+0

иногда из-за поведения редактора или ошибки в редакторе он не вызывает никаких ошибок, вместо этого он запускается на эмуляторе или устройстве. но Android очень умный, чем редактор, он поймает ошибку, а doen не раздувает xml для создания макета. – nanithehaddock

+0

использовать следующий код – nanithehaddock

1

попытка изменить

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

в

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

Для меня, в одном из моих layout.xml файлов, я имел

<ImageView 
    android:id="@+id/row_1_col_0" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@string/default_picture_location"> 
</ImageView> 

и внутри str ings.xml, я имел

<string name="default_picture_location">"@mipmap/tile"</string> 

и поэтому показывал это в Android Studio:

<ImageView 
    android:id="@+id/row_1_col_0" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@mipmap/tile"> 
</ImageView> 

Я думал, что все будет работать, потому что не было никаких ошибок и приложение компилируется и побежал. Однако была ошибка времени выполнения, в которой говорилось: «android.view.InflateException: двоичная строка XML-файла # 7: ошибка раздувания класса ImageView».

После того, как я изменил Android: фон из

android:background="@string/default_picture_location" 

в

android:background="@mipmap/tile" 

все работало.

+0

Причина этого не работает, потому что у вас были котировки между строковыми тегами; они не нужны. – Ken

+0

Хорошо, спасибо. Может быть, что-то изменилось с 2015 года. – Gene

1

Ошибки при наполнении может исходить от вытяжки используется в ImageView, в данном случае:

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

Чтобы избавиться от него, заменить все существующие изображения, пытаясь другой вытяжкой.

+0

Я ошибся с именем файла png, который использовался в этом образе просмотра, чтобы файл не был найден. Глупая и критическая ошибка для «файл не найден». Вздох, я действительно ненавижу сложность Android. – Codebeat

0

У меня есть ресурсы в каталоге документов drawable-zh-xxhdpi, но не в каталоге ресурсов, возникновение этой ошибки drawable-xxhdpi.

Это должно быть:

res 
    drawable-xxhdpi 
    aa.png 
    drawable-zh-xxhdpi 
    aa.png 
0

Я наткнулся на эту же проблему недавно и был в состоянии решить эту проблему с помощью app:srcCompat="@drawable/ic_black_image_24"

в документации appcompat:srcCompat государств, -

Он устанавливает как содержимое этого ImageView. Позволяет использовать вектор, который можно использовать при работе на старых версиях платформы.

Надеюсь, что это поможет, если кто-то столкнется с одной и той же проблемой.

0

В моем случае у меня была такая же ошибка, но только при использовании устройства с API < 24 (эмулятор или физическое устройство).

Это было вызвано использованием «градиента» внутри импортированного SVG.

ошибка не появляется в StackTrace, но он появляется в .xml импортируемого SVG файл:

enter image description here

Это вызывает приложение к сбою при надувании View, который имеет эту SVG как его источник для API < 24.

Если вы хотите использовать только SVG, вы можете ограничить использование этого ресурса API> = 24 и удалить градиент для API ниже.