Android Studio中的控件初始化疑问:build没问题,但运行模拟器时出现问题。错误代码:java.lang.RuntimeException: Unable to instant

在使用Android Studio,启动模拟器时,出现如下错误:

Android Studio中的控件初始化疑问:build没问题,但运行模拟器时出现问题。错误代码:java.lang.RuntimeException: Unable to instant_第1张图片

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行:

Android Studio中的控件初始化疑问:build没问题,但运行模拟器时出现问题。错误代码:java.lang.RuntimeException: Unable to instant_第2张图片

在创建TextView是,指定了它的参数this,而在Android Studio3环境下,会自动在this前增加context:,我试着将“=new TextView(context this);”这一部分注释掉,就像上图初始化Button一样,结果竟然可以运行通过了。

 

总结:本不想写总结,因为并没有查出根本原因,只是找到了一个临时的解决方法,但本着写文章的精神,还是写了这句话。

你可能感兴趣的:(Android)