Строка двоичного XML-файла #0: Ошибка надувания класса ImageView
Я использую Android Studio 3.0
Я устаю исправлять эту проблему. приложение не выполняется, оно всегда показывает мне эту ошибку. Двоичный XML-файл, строка № 0: ошибка надувания класса ImageView
это мой main_activity.xml, я изменил свой xml, я использовал ConstraintLayout
<?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.example.razoo.mywages.MainActivity">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="517dp"
android:contentDescription="@string/button3"
android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/doctor" />
<Button
android:id="@+id/step1btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@color/colorPrimary"
android:onClick="nextPage"
android:text="@string/button3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498"
tools:layout_alignParentEnd="true"
tools:layout_alignParentRight="true"
tools:layout_alignParentTop="true"
/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:background="@color/colorPrimary"
android:text="@string/button3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_alignParentEnd="true"
tools:layout_alignParentRight="true"
tools:layout_alignParentTop="true" />
Java-код для основной деятельности
public class MainActivity extends Activity {
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);//the error point here
btn1 = (Button) findViewById(R.id.step1btn);
}
public void nextPage(View view){
Intent StartNewActivity = new Intent(MainActivity.this, Main2Activity.class);
startActivity(StartNewActivity);
}
}
это полный журнал,
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.razoo.mywages/com.example.razoo.mywages.MainActivity}: android.view.InflateException: Binary XML file line #0: Error inflating class android.widget.ImageView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at android.app.ActivityThread.access$800(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5272)
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:909)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class android.widget.ImageView
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:387)
at android.app.Activity.setContentView(Activity.java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:5977)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at android.app.ActivityThread.access$800(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5272)
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:909)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
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:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:387)
at android.app.Activity.setContentView(Activity.java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:5977)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at android.app.ActivityThread.access$800(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5272)
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:909)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
Caused by: android.content.res.Resources$NotFoundException: Resource "com.example.razoo.mywages:drawable/doctor" (7f060054) is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f060054 a=-1 r=0x7f060054}
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2431)
at android.content.res.Resources.loadDrawable(Resources.java:2371)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.widget.ImageView.<init>(ImageView.java:146)
at android.widget.ImageView.<init>(ImageView.java:135)
at android.widget.ImageView.<init>(ImageView.java:131)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:387)
at android.app.Activity.setContentView(Activity.java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:5977)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at android.app.ActivityThread.access$800(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5272)
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:909)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
8 ответов
Некоторые источники SVG, похоже, не полностью поддерживаются. Добавьте строку ниже в методе onCreate() вашей деятельности:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
и убедитесь, что вы используете ниже в качестве атрибута для вашего ImageView в вашем XML-файле: app:srcCompact вместо android: src для определения вашего изображения.
В Android Studio версии 3.0.0 и выше, когда мы пытаемся добавить изображения в папку для рисования, вам будет предложено "Выбрать каталог назначения". В это время выберите drawable
вместо drawable-v24
,
Продолжайте кодировать........:)
Не вставляйте изображение в drawable(v-24), вставьте его в папку drawable и очистите проект, а затем запустите его, и все будет работать.
Решение для такого рода проблемы: Строка двоичного XML-файла #0: Ошибка надувания класса ImageView
Решение:
- Проверьте папку с изображениями, независимо от того, находится ли файл изображения в Drawer или Drawer-24 или нет. Пример здесь
Файл изображения Firebase находится в Drawer-24
Если файл изображения находится в ящик-24, щелкните правой кнопкой мыши файл и выберите Refactor, а затем нажмите кнопку " Переместить".
Затем удалите слово "-24" и нажмите "ОК" и снова запустите.
СДЕЛАННЫЙ.
Ну, в моем случае это было сбой только в сборках релизов из-за Proguard, поэтому после того, как я добавил эту строку:
-keep class android.support.v7.widget.** { *; }
в файле proguard-rules.pro
Авария была решена.
Использование android:src="@drawable/doctor"
в вашем ImageView
Я использую app:srcCompat
вместо android:src
, Работает в андроид студии 3.0
Насколько я знаю, эта проблема возникает, когда мы вставляем изображение из проводника в папку для рисования, а затем запрашивается погода для копирования drawable или drawable-v24, и если вы вставили изображения в обе структуры каталогов или у вас есть еще одно изображение с другой структурой каталогов, то это покажет эту ошибку, убедитесь, что вы скопировали изображение только в 'drawable' структуру каталогов:)
Если у вас уже есть опция в принятом ответе, проверьте, находится ли вектор в папке "drawable-anydpi". Перемещение в папку "drawable" исправляет это.