最近遇到default activity not found的问题,各种查资料,找方案,了解了很多相关知识,然而没有任何作用,总结一下可能导致的原因吧。
-
AndroidManifest.xml文件中没有声明相应Activity,新手很容易犯的错,所以最好直接用AS快速创建Activity,不需要手动声明。注意为默认启动Activity添加intent-filter。解决方案如下:
<activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
-
包名与activity所在路径不符,一般来说不会出现这种问题,这种问题也很好排查,一般来说IDE就会直接报红,这种情况也很好解决:
- 配置正确的项目包名路径
- 为Activity添加完整的路径
<activity
android:name="com.paradise.facephone_webrtc.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这种错误与第一种一样,一般不会发生,最好的避免方法就是使用AS自带的快速建立Activity的方法。
-
项目中没有Activity,只定义了service的情况。这种运行当然就是找不到Activity啦,需要设置一下Launch Options的参数,也很简单,如下:
会看到默认是Default Activity ,手动改为Nothing就可以了。 -
当你排除了以上的情况之后,你发现问题还没有得到解决,这个时候可以试一试缓存清除大法,因为很有可能是AS不定时抽风
然后坐等AS自动重启就好了 -
以上方案仍旧解决不了,干脆重建一个项目吧!只不过感觉不是很优雅的样子。当然前4种都没能解决,可能重建也解决不了,所有有了第6种方案。
-
重装AS吧。我遇到的就是最后这一个问题,版本问题。本着开发者当然要用最新版啦的观念,每次升级我都是非常坚定的,于是我的版本一路奔到3.2.1,项目遇到的问题就是,导入了一个module,module中没有Activity,正常情况下是没有任何影响的,毕竟他就是个module!但就是这个东西,导致我不能正常运行项目,修改Launch Options为nothing, 是可以成功安装的,但是不能打开项目,会一直提示 Client Not Ready Yet… ,但是手动点击app图标打开又没有问题,只是不能debug而已。最后回退到和同事相同的3.0.1版本后完美解决。