InvocationTargetException:无法执行活动的方法

时间:2016-08-12 15:03:53

标签: android

我是Android的新手,我想把Click事件放在XML而不是java上,我在Activity类上实现了以下方法

   public void onInfoClick(View v){
        switch(v.getId()) {

            case R.id.ivAcceptAmericanExpress:
                showPopup(v, getString(R.string.apt_american_express));
                break;
          }
    }

在XML中,我完成了以下代码

 <ImageView
                    android:id="@+id/ivAcceptAmericanExpress"
                    android:layout_width="24.286dp"
                    android:layout_height="24.286dp"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="10dp"
                    android:layout_toRightOf="@id/txtAcceptAmericanExpress"
                    android:src="@drawable/info_image"
                    android:onClick="onInfoClick" />

但是当我点击图片时,我收到以下错误

Could not execute method of the activity
android.view.View$1.onClick(View.java:4021)
android.view.View.performClick(View.java:4781)
android.view.View$PerformClick.run(View.java:19873)
android.os.Handler.handleCallback(Handler.java:739)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5291)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699):: Cause : java.lang.reflect.InvocationTargetException
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
android.view.View$1.onClick(View.java:4016)
android.view.View.performClick(View.java:4781)
android.view.View$PerformClick.run(View.java:19873)
android.os.Handler.handleCallback(Handler.java:739)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5291)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

1 个答案:

答案 0 :(得分:0)

InvocationTargetException通常指向您尝试执行的onClick方法中的例外情况 - 在您的情况下是onInfoClick方法 - 您可以通过评论{{1}来确认这一点1}},看看你是否仍然得到错误。确定问题后,您可以进行必要的更改以解决异常。您应该使用case-statement围绕方法的主体以保证安全。