在使用Android Studio,启动模拟器时,出现如下错误:
Logcat中的信息如下:
java.lang.RuntimeException:Unable to instantiate activityComponentInfo{com.example.dcyyw.application_test1/com.example.dcyyw.application_test1.MainActivity}:java.lang.NullPointerException: Attempt to invoke virtual method'android.content.res.Resources android.content.Context.getResources()' on anull object reference
先分析一下:
1. Unable to instantiate activityComponentInfo,百度翻译为:无法实例化活动组件信息。可知,某个类在实例化的时候出现了问题
2. Attempt to invoke virtualmethod 'android.content.res.Resources android.content.Context.getResources()'on a null object reference,百度翻译为:试图在空对象引用上调用虚拟方法“ANDROID.Cord.RES.RealthAddio.Calth.Calist.GETRealsCues()”。意思就是我们不能对一个null(空)对象,及没有赋值的对象使用方法“ANDROID.Cord.RES.RealthAddio.Calth.Calist.GETRealsCues()”,但奇怪的是,我压根就没用过这个方法。使用百度搜索一下,什么都搜不到
3. 这时就应该从对象实例化和空对象这两个地方着手,由于我的工程刚刚建立,新增的东西不多,比较方便。新增的代码只有2行:
在创建TextView是,指定了它的参数this,而在Android Studio3环境下,会自动在this前增加context:,我试着将“=new TextView(context this);”这一部分注释掉,就像上图初始化Button一样,结果竟然可以运行通过了。
总结:本不想写总结,因为并没有查出根本原因,只是找到了一个临时的解决方法,但本着写文章的精神,还是写了这句话。