Default Activity not found解决方法

项目场景:

最近开始学习Android,第一次尝试建立一个空白项目,手动添加activity时出现报错:Default Activity not found


问题描述:

运行时程序可以正常编译,但不能发布到AVD上,查看了几篇博文,发现这篇方法较全而且总结较好
https://blog.csdn.net/yforyoung/article/details/84952283
转载记录一下


原因分析:

原因可能有如下几种情况:

  1. 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>

  1. 包名与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的方法。

  1. 项目中没有Activity,只定义了service的情况。这种运行当然就是找不到Activity啦,需要设置一下Launch Options的参数,也很简单,如下:
    在这里插入图片描述
    在这里插入图片描述
    会看到默认是Default Activity ,手动改为Nothing就可以了。

  2. 当你排除了以上的情况之后,你发现问题还没有得到解决,这个时候可以试一试缓存清除大法,因为很有可能是AS不定时抽风
    在这里插入图片描述
    然后坐等AS自动重启就好了

  3. 以上方案仍旧解决不了,干脆重建一个项目吧!只不过感觉不是很优雅的样子。当然前4种都没能解决,可能重建也解决不了,所有有了第6种方案。

  4. 重装AS吧。我遇到的就是最后这一个问题,版本问题。本着开发者当然要用最新版啦的观念,每次升级我都是非常坚定的,于是我的版本一路奔到3.2.1,项目遇到的问题就是,导入了一个module,module中没有Activity,正常情况下是没有任何影响的,毕竟他就是个module!但就是这个东西,导致我不能正常运行项目,修改Launch Options为nothing, 是可以成功安装的,但是不能打开项目,会一直提示 Client Not Ready Yet… ,但是手动点击app图标打开又没有问题,只是不能debug而已。最后回退到和同事相同的3.0.1版本后完美解决。


参考:
https://blog.csdn.net/yforyoung/article/details/84952283

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值