您的位置:首页 > 移动开发 > Android开发

解决Could not execute method of the activity

2014-02-06 22:18 369 查看
Android编程里面很多问题其实都不算大问题,很多错误也是小错误,比如这次要说的

LogCat信息:

java.lang.IllegalStateException: Could not execute method of the activity

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.NullPointerException

说白了就是无法执行和activity相关的方法,为什么无法执行呢,因为你给系统的是空引用,出现空指针错误

造成这种因素的原因很多,我目前已知的,就是代码的顺序问题,在onCreate方法中,应有如下代码

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username = (EditText) findViewById(R.id.username);
pwd = (EditText) findViewById(R.id.pwd);
}


这是一般的写法,如果照这样写,不会出现任何问题

注意现在把
setContentView(R.layout.activity_main);


的顺序换一下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
username = (EditText) findViewById(R.id.username);
pwd = (EditText) findViewById(R.id.pwd);
setContentView(R.layout.activity_login);
}


这样只要执行和activity相关的方法,就会出现Could not execute method of the activity

为什么呢,因为绑定控件必须在整个界面出来之后,也就是说,系统还不知道使用的是哪个xml文件的时候,你告诉系统把xml文件中id为username的赋给username,系统当然会赋null,你对null执行getText()当然会出错.

所以写代码的时候注意先后顺序,setContentView先执行之后再进行相关控件的绑定.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  控件 android adt
相关文章推荐