【问题标题】:Android app crash due to images由于图像导致 Android 应用程序崩溃
【发布时间】:2016-07-04 05:39:00
【问题描述】:

我对安卓很陌生。我正在编写一个程序来更改按钮单击时的图像。没有图像,我的应用程序可以完美运行。但是使用图像时,应用程序会崩溃。

img 的大小 - 4kb,尺寸为 80 X 80。

我的代码 -

 protected void clickMe(View view){
    EditText phone = (EditText) findViewById(R.id.phone);
    EditText name = (EditText) findViewById(R.id.name);

    ImageView img = (ImageView) findViewById(R.id.img1);
    img.setImageResource(R.drawable.x);

    Toast.makeText(getApplicationContext(), "yo dudE "+name.getText().toString(), Toast.LENGTH_LONG).show();

    Log.i("Phone : ", phone.getText().toString());

}

堆栈跟踪:

07-04 11:06:04.964 10037-10037/com.satyakisanyal.myfirstandroidproject E/AndroidRuntime: 致命异常: main 进程:com.satyakisanyal.myfirstandroidproject,PID:10037 java.lang.IllegalStateException:无法执行方法 安卓:点击 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 在 android.view.View.performClick(View.java:5198) 在 android.view.View$PerformClick.run(View.java:21147) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:5198) 在 android.view.View$PerformClick.run(View.java:21147) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 引起:java.lang.ClassCastException:android.widget.RelativeLayout 无法转换为 android.widget.ImageView 在 com.satyakisanyal.myfirstandroidproject.MainActivity.clickMe(MainActivity.java:22) 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:5198) 在 android.view.View$PerformClick.run(View.java:21147) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

【问题讨论】:

  • 崩溃原因:java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.ImageView
  • 可以添加xml文件吗?
  • 给我看你的 xml 并把整个 java 文件放好,这样我就可以改变你的要求,我想知道你的 onCreate 方法。

标签: java android exception crash imageview


【解决方案1】:

我希望您在 android 中将 RelativeLayout 转换为 ImageView。检查xml文件中的R.id.img1是什么?

【讨论】:

  • 是的...我为我的图片使用了不同的 ID...非常感谢:D
【解决方案2】:
ImageView img = (ImageView) findViewById(R.id.img1);

id img1 似乎属于RelativeLayout 而不是ImageView

【讨论】:

  • 是的...我为我的图片使用了不同的 ID...非常感谢:D
【解决方案3】:

检查logcat,它显示这个错误。 java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.ImageView 使用前检查 ImageView 的 id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多