Unable to instantiate activity ComponentInfo
来源:互联网 发布:韩顺平linux视频下载 编辑:程序博客网 时间:2024/05/16 04:16
最近正在学习Android开发编程,于是今天就按照书本的例子写了一个小程序。该程序功能主要是利用Intent(意图)来连接两个不同的Activity,然后互相传递数据。主要代码如下:
package com.example.activityitentresult;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.widget.Button;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;public class ItentResultMain extends Activity {static final int REQUEST_CODE = 0;TextView showInfo = (TextView)findViewById(R.id.show);Button btnBack = (Button)findViewById(R.id.btn);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.result_intent);btnBack.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根Intent ien = new Intent(getBaseContext(), ResultIntent.class);startActivityForResult(ien, REQUEST_CODE);}});}……}
运行程序时,编译器提示了错误,于是便打开LogCat来查询。错误日志如下:
Error message:
01-21 14:19:20.016: D/AndroidRuntime(281): Shuttingdown VM
01-21 14:19:20.016: W/dalvikvm(281): threadid=1:thread exiting with uncaught exception (group=0x4001d800)
01-21 14:19:20.046: E/AndroidRuntime(281): FATALEXCEPTION: main
01-21 14:19:20.046: E/AndroidRuntime(281):java.lang.RuntimeException: Unable to instantiate activityComponentInfo{com.example.activityintenttest/com.example.activityintenttest.ActivityIntentMain}:java.lang.NullPointerException
…….从日志中,我找到了这条错误:Unable to instantiateactivity ComponentInfo(不能实例化Activity中的组件信息)。奇怪了,我是通过了findViewById(int id)函数来进行View对象的实例化,怎么会出现对象实例化的错误呢?在找到问题的原因之前,还是有必要来了解一下相关的知识(通过帮助文档和网上资源东拼西凑):
一个Android程序由一个或多个Activity组成,每个Activity包含一个或者几个界面,而界面则显示在Activity中。Activity本身并不现实,它是一个容器,装载着如文本框、按钮、多选项和编辑框等等。这些组件我们都将之统称为View,即“视图”。Activity作为视图的容器而存在。
我们都知道,一个完整的Activity生命周期是由系统调用onCreate函数开始的,并且调用onDestroy函数结束。一个完整的Activity生命周期如下图所示:在程序中,为了创建一个activity,我们必须要创建一个Acitivity的子类(或者现存它的子类)。在你的子类中,当activity在它的生命周期中的多种状态之间转换时,你需要实现系统调用的回调函数,例如当系统将要被创建,停止,重起或者销毁。两种最重要的回调函数分别为onCreate()和onPause(),现重点介绍onCreate()函数。
onCreate()
你必须实现这个方法。当你创建Activity时,系统会调用这个函数。在这个实现方法内,你必须要初始化你Activity中基本的的组件。更重要的是,对于这个Activity的用户界面,你必须要在这个方法内调用setContenView()来定义layout,然后再调用findViewById()函数来进行用户界面组件对象的实例化(摘自Android Developer帮助文档)。
现在我们再回过头来看看错误代码,发现在onCreate函数声明之前就已经使用了findViewById()函数了。我们都知道该函数利用我们在XML文件中定义的View的id属性来获取相应的View对象,但是我却在onCreate函数之前调用了该方法。那等于是说,Activity还没创建,即存放用户界面组件的容器还没创建,生命周期还没开始,我们当然是不能使用这个函数来进行用户界面组件对象的实例化。于是我重新把该段代码放到onCreate函数之后,重新运行,结果编译成功。如下所示:public class ItentResultMain extends Activity {static final int REQUEST_CODE = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.result_intent);TextView showInfo = (TextView)findViewById(R.id.show);Button btnBack = (Button)findViewById(R.id.btn);……}……}
这是我的第一个Android小程序,虽然开发过程中遇到了许多错误,但是却让我通过阅读相关资料来更深入地了解Activity(活动)的概念。进步虽小,我却相信,一点一滴地积累,终能汇成江河,流向大海的!
- Unable to instantiate activity ComponentInfo
- unable to instantiate activity componentinfo
- Unable to instantiate activity ComponentInfo
- Unable to instantiate activity ComponentInfo
- Unable to instantiate activity ComponentInfo
- android 异常 Unable to instantiate activity ComponentInfo
- kotlin Unable to instantiate activity ComponentInfo
- Android Unable to instantiate activity ComponentInfo...
- Android中的"Unable to start activity ComponentInfo"或者"Unable to instantiate activity ComponentInfo"的错误
- Android中的"Unable to start activity ComponentInfo"或者"Unable to instantiate activity ComponentInfo"的错误
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
- Android程序的Unable to instantiate activity ComponentInfo异常
- AndroidRuntime(21900): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
- Android程序的Unable to instantiate activity ComponentInfo异常
- Android程序的Unable to instantiate activity ComponentInfo异常
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
- 关于hiberante FetchMode
- 从零开始学习jQuery教程:jQueryUI常用功能实战
- php 获取客户端的ip、地理信息、浏览器信息、本地真实ip
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- android学习工作体会总结
- Unable to instantiate activity ComponentInfo
- Windows Mobile say hello!
- Android 程序框架设计
- web开发 servlet
- 命令行修改ip地址
- 线程安全的随机数生成
- Hadoop集群(第7期)_Eclipse开发环境设置
- javascript 保存XML
- Features and P2 in eclipse platform