Android中报错 FATAL EXCEPTION MAIN

来源:互联网 发布:知乎vs知道 编辑:程序博客网 时间:2024/05/18 05:30

Android中报错 FATAL EXCEPTION MAIN

出现这个问题的原因多半是因为所用到的资源没有找到:
这里写图片描述
例如:
1、资源引用错误

TabSpec spec2 = tabHost.newTabSpec("tab2");spec1.setIndicator("通知公告");spec1.setContent(R.id.tabNotification);tabHost.addTab(spec2);TabSpec spec3 = tabHost.newTabSpec("tab3");spec1.setIndicator("培训资料");spec1.setContent(R.id.tabFiles);tabHost.addTab(spec3);

上面的代码是通过复制粘贴得到的,仔细检查发现,变量名没有更改完全,spec1重复使用。更改后的代码:

    TabSpec spec2 = tabHost.newTabSpec("tab2");    spec2.setIndicator("通知公告");    spec2.setContent(R.id.tabNotification);    tabHost.addTab(spec2);    TabSpec spec3 = tabHost.newTabSpec("tab3");    spec3.setIndicator("培训资料");    spec3.setContent(R.id.tabFiles);    tabHost.addTab(spec3);

将spec1分别改为spec2和spec3。
很多时候我们在复制粘贴时容易犯这种细节性的错误。
2、在AndroidManifest.xml文件中没有找到对应的资源,这往往是由于在其他地方修改了资源名,但AndroidManifest.xml中并不会自动修改,所以AndroidManifest.xml中找不到对应的资源。
例如:
将之前的类名TongXunActivity改为TongXunPlatforActivity,但在AndroidManifest.xml中仍然保存的是TongXunActivity:

        <activity            android:name=".TongXunformActivity"            android:label="@string/title_activity_tong_xun" >        </activity>

这样就找不到我们更改后的TongXunPlatforActivity。此时应该在AndroidManifest.xml中手动更改为:

        <activity            android:name=".TongXunPlatformActivity"            android:label="@string/title_activity_tong_xun" >        </activity>

3、我们通过Eclipse的快捷方式新建的Activity,默认是保存在工程的默认包下面.
例如:com.whu.mobileoa
这里写图片描述
在AndroidManifest.xml中android:name选项也就以英语句号(.)来报名该Activity在默认包下面:

        <activity            android:name=".MainActivity"            android:label="@string/app_name" >

但在实际开发中往往需要在子包中新建Activity:
这里写图片描述
这是还得需要在AndroidManifest.xml中更改这个Activity的位置,否则是无法找到这个Activity的:

        <activity                  android:name=".tongxunplatform.TongXunPlatformActivity"            android:label="@string/title_activity_tong_xun" >        </activity>

这里在英语句号(.)后添加的tongxunplatform就是子包名。

0 0
原创粉丝点击