添加ImageView时应用崩溃了吗?

时间:2017-12-01 20:06:32

标签: java android android-layout

每当我尝试在Android Studio 3中添加图片时,应用都会崩溃。请帮助。

logcat的:

  

12-02 01:13:14.289 10530-10530 /? E / AndroidRuntime:致命异常:   main进程:com.divyam.demo2,PID:10530 java.lang.RuntimeException:   无法开始活动   ComponentInfo {com.divyam.demo2 / com.divyam.demo2.MainActivity}:   android.view.InflateException:二进制XML文件行#0:二进制XML   文件行#0:错误使类ImageView at膨胀   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)   在android.app.ActivityThread.-wrap11(ActivityThread.java)处   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)   在android.os.Handler.dispatchMessage(Handler.java:102)at   android.os.Looper.loop(Looper.java:148)at   android.app.ActivityThread.main(ActivityThread.java:5417)at   java.lang.reflect.Method.invoke(Native Method)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)引起   by:android.view.InflateException:二进制XML文件行#0:二进制XML   文件行#0:错误使类ImageView at膨胀   android.view.LayoutInflater.inflate(LayoutInflater.java:539)at   android.view.LayoutInflater.inflate(LayoutInflater.java:423)at   android.view.LayoutInflater.inflate(LayoutInflater.java:374)at   android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)   在   android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)   在com.divyam.demo2.MainActivity.onCreate(MainActivity.java:16)at   android.app.Activity.performCreate(Activity.java:6237)at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)   在   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)   在android.app.ActivityThread.-wrap11(ActivityThread.java)处   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)   在android.os.Handler.dispatchMessage(Handler.java:102)at   android.os.Looper.loop(Looper.java:148)at   android.app.ActivityThread.main(ActivityThread.java:5417)at   java.lang.reflect.Method.invoke(Native Method)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)   引起:android.view.InflateException:二进制XML文件行#0:   在类ImageView上输出错误   android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)   在   android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)   在android.view.LayoutInflater.rInflate(LayoutInflater.java:835)at   android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)   在android.view.LayoutInflater.inflate(LayoutInflater.java:515)at   android.view.LayoutInflater.inflate(LayoutInflater.java:423)at   android.view.LayoutInflater.inflate(LayoutInflater.java:374)at   android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)   在   android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)   在com.divyam.demo2.MainActivity.onCreate(MainActivity.java:16)at   android.app.Activity.performCreate(Activity.java:6237)at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)   在   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)   在android.app.ActivityThread.-wrap11(ActivityThread.java)处   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)   在android.os.Handler.dispatchMessage(Handler.java:102)at   android.os.Looper.loop(Looper.java:148)at   android.app.ActivityThread.main(ActivityThread.java:5417)at   java.lang.reflect.Method.invoke(Native Method)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)   引起:android.content.res.Resources $ NotFoundException:资源   ID#0x7f060054 at   android.content.res.Resources.getValue(Resources.java:1351)at   android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330)   在   android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195)   在   android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)   在   android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)   在   android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:58)   在   android.support.v7.widget.AppCompatImageView。(AppCompatImageView.java:78)   在   android.support.v7.widget.AppCompatImageView。(AppCompatImageView.java:68)   在   android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)at at   android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)   在   android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)   在   android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746)   在   android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)   在android.view.LayoutInflater.rInflate(LayoutInflater.java:835)at   android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)   在android.view.LayoutInflater.inflate(LayoutInflater.java:515)at   android.view.LayoutInflater.inflate(LayoutInflater.java:423)at   android.view.LayoutInflater.inflate(LayoutInflater.java:374)at   android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)   在   android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)   在com.divyam.demo2.MainActivity.onCreate(MainActivity.java:16)at   android.app.Activity.performCreate(Activity.java:6237)at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)   在   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)   在android.app.ActivityThread.-wrap11(ActivityThread.java)处   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)   在android.os.Handler.dispatchMessage(Handler.java:102)at   android.os.Looper.loop(Looper.java:148)at   android.app.ActivityThread.main(ActivityThread.java:5417)at   java.lang.reflect.Method.invoke(Native Method)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)}

activity_main.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.divyam.demo2.MainActivity"
    tools:layout_editor_absoluteY="81dp">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="344dp"
        android:text="Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="18dp"
        app:layout_constraintBottom_toBottomOf="@+id/button2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:srcCompat="@drawable/download" />

</android.support.constraint.ConstraintLayout>

主要Activity.java

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }}

当我删除I​​mageView时,该应用程序运行正常。 我已尝试调整图像大小并重新安装android studio。

有人能解决问题吗?

6 个答案:

答案 0 :(得分:0)

你可能会对difference between "@+id" and "@id"搞砸了。尝试更正ImageView

activity_main.xml的这一行
app:layout_constraintBottom_toBottomOf="@+id/button2"

app:layout_constraintBottom_toBottomOf="@id/button2"

并重试。

答案 1 :(得分:0)

使用 PNG 或SVG图片作为imageView的来源。 更改以下行:

app:srcCompat="@drawable/download"

android:src="@drawable/download"

答案 2 :(得分:0)

确保您的图片名称之间没有空格,并以小写字母开头。添加将其保存在drawable文件夹中而不是drawable(24),否则会在90%的时间内报告错误。

答案 3 :(得分:0)

图像分辨率/尺寸是问题。只需检查图像文件的分辨率/尺寸并将其更改为适合手机的大小即可。我遇到了同样的问题。

答案 4 :(得分:-1)

改变这个:

  <ImageView
        ...
        app:srcCompat="@drawable/download" />

对此:

<ImageView
        ...
        android:src="@drawable/download" />

<强>更新

  

检查drawable目录,可能你的drawable在其他目录中   像drawable-large,drawable-xxhdpi等文件夹然后清理和   重建你的项目

答案 5 :(得分:-1)

基本上,您需要按照以下提到的步骤进行试错:

  • 尝试新项目,并先添加图片或添加任何图片,然后运行模拟器。
  • 如果正常,则开始添加textView,按钮和其他 活动所需的对象,并在每一次运行模拟器 您正在添加项目的实例。
  • 如果一切正常,请将代码从旧项目添加到您的主要活动中,然后添加所有更改。

它应该运行正常。实际上,我在遇到类似问题的一个项目中尝试了此方法,并且奏效了。