赞
踩
前言: 今日付出的汗水,只为明日不一样的自己。唯有坚持不懈的努力,才能过上自己想要的生活转载请标明出处:
http://blog.csdn.net/w690333243/article/details/78258573
更多内容请访问【-小沫-专栏】
今天遇到一个问题,很是头疼,写了一个Demo,运行的时候发现报红叉,但是在代码中又找不到报红的地方,真是醉了,难道要删除module,再从新建吗,太费事了,想想其他办法,于是各种尝试,各种Clean项目,从新Rebuild,invalidate caches,都不顶用,最后终于发现问题所在,同时将解决问题的过程写下来,希望对网友有所帮助。
一句话概括:看Debug Configuration中的相关项目报错提示信息。
看问题
一般遇到这种问题,我们的第一反应就是挨个看项目中的文件,看报红的地方,然后修改,但是最后没有报红的地方,怎么办?
点击项目名右边的下拉按钮,点击Edit Configurations,
选择报错的项目,看下面的提示信息。
看到没,提示没有找到缺省的Activity,那什么是缺省的Activity呢? 大家都知道,在Android Studio 或 eclipse 自动创建项目时,在清单文件中都会为主Activity这样配置,不知道大家留意过没,当你自己新建主Activity时(不用软件帮你自动创建时),一定要配置intent-filter,其中里面的LAUNCHER不是必须的,其他两个一定要配置
<activity android:name=".MainActivity">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
如图,我自己项目中的的主Activity,没有配置其中的intent-filter,所以项目报红,但是你在清单文件中少写了属性,又没有提示,所以很难找错项目报红原因所在。
加上如下intent-filter代码后,报红消失
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
解释:为何我的项目会出现这种问题,刚开始我用AS创建项目的时候,选择了一个模板,最后感觉并不是自己想要的,于是删除了相关的类文件,及MainActivity,删除时勾选强制删除与此相关的代码,于是就把AndroidManifest.xml中的主Activity配置信息,最后自己新建了一个Activity,但是并没有勾选其为主Activity,所以软件没有为其自动配置intent-filter信息,进而导致项目报错。
出现这种问题怎么办:
一、建议新建项目后,不要删除里面自动创建的东西,真想删除时一定要谨慎
二、使用上面博客中的办法,找到问题所在,解决
三、当你再次遇到此问题时,删除后,应该会想到需要配置的信息了吧,手动添加(凭经验)
四、实在找不到解决办法,只能删除项目,重新构建吧
总结:需谨慎,多积累经验
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。