Java 二进制 XML 文件第 0 行:错误膨胀类 ImageView
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/47526417/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Binary XML file line #0: Error inflating class ImageView
提问by Israa Alothman
I am using Android studio 3.0
I am getting tired fixing this problem. the app does not execute it always show me this error Binary XML file line #0: Error inflating class ImageView
我正在使用 Android studio 3.0
我已经厌倦了解决这个问题。该应用程序不执行它总是向我显示此错误 Binary XML file line #0: Error inflating class ImageView
this is my main_activity.xml, I have changed my xml I used ConstraintLayout
这是我的 main_activity.xml,我已经更改了我使用 ConstraintLayout 的 xml
<?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 code for main activity
主要活动的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);
}
}
this is the full log,
这是完整的日志,
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.access0(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.access0(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.access0(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.access0(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)?
采纳答案by HaroldSer
Some SVGs sources seem to not be fully supported. Add below line within your activity's onCreate() method:
某些 SVG 源似乎没有得到完全支持。在您的活动的 onCreate() 方法中添加以下行:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
and make sure you use below as attribute to your ImageView in your xml file: app:srcCompact instead of android:src to define your image.
并确保您在 xml 文件中使用下面作为 ImageView 的属性: app:srcCompact 而不是 android:src 来定义您的图像。
回答by Muhammad Saad
Use android:src="@drawable/doctor"
in your ImageView
android:src="@drawable/doctor"
在你的 ImageView 中使用
回答by S H Mehdi
don't paste your image in drawable(v-24), paste it into the drawable folder and clean the project and then run it will work.
不要将图像粘贴到 drawable(v-24) 中,将其粘贴到 drawable 文件夹中并清理项目,然后运行它即可。
回答by Krishna Raj Salim
In Android Studio version 3.0.0 and above, once we try to add images to drawable folder, it will ask you to 'Choose Destination Directory'. At that time, choose drawable
instead of drawable-v24
.
在 Android Studio 3.0.0 及以上版本中,一旦我们尝试将图像添加到 drawable 文件夹,它会要求您“选择目标目录”。那时,选择drawable
代替drawable-v24
。
Keep Coding........ :)
继续编码........ :)
回答by Aditya Chandeliya
As far as I know, this problem occur when we paste image from explorer to drawable folder then it ask weather to copy drawable or drawable-v24 and if you have pasted images in both directory structures, or have one more images with different directory structure then it will show this error, make sure to copy image only in 'drawable' directory structure :)
据我所知,当我们将图像从资源管理器粘贴到 drawable 文件夹时会出现此问题,然后它会询问天气复制 drawable 或 drawable-v24 并且如果您在两个目录结构中都粘贴了图像,或者还有一个具有不同目录结构的图像它将显示此错误,请确保仅在“可绘制”目录结构中复制图像:)
回答by lbarbosa
If you already have the option in the accepted answer check if the vector is in the in the "drawable-anydpi" folder. Moving it to the "drawable" folder fixes it.
如果您已经在接受的答案中有选项,请检查向量是否在“drawable-anydpi”文件夹中。将它移动到“drawable”文件夹修复它。
回答by Ridho F Hasyim
I'm using app:srcCompat
instead of android:src
.
It works in android studio 3.0
我正在使用app:srcCompat
而不是android:src
. 它适用于 android studio 3.0
回答by Kopi Bryant
Solution for this kind of problem: Binary XML file line #0: Error inflating class ImageView
此类问题的解决方案:Binary XML file line #0: Error inflating class ImageView
Solution:
解决方案:
- Check Your Image Folder, whether the image file is in Drawer or Drawer-24 or not. Example Here
- 检查您的图像文件夹,图像文件是否在 Drawer 或 Drawer-24 中。示例在这里
Firebase image file is in Drawer-24
If image file is in drawer-24, Right Clickthe File and select Refactorand then click Move
Then remove the word "-24" and Click OK and RUN again.
如果图像文件在 drawer-24 中,请右键单击文件并选择重构,然后单击移动
然后删除单词“-24”并单击“确定”并再次运行。
DONE.
完毕。
回答by Suraj Vaishnav
Well in my case it was crashing in only release builds because of proguard, so after i have added this line:
好吧,在我的情况下,由于 proguard,它仅在发布版本中崩溃,所以在我添加了这一行之后:
-keep class android.support.v7.widget.** { *; }
in file proguard-rules.pro
, the crash has been resolved.
在文件中proguard-rules.pro
,崩溃已经解决。