Error处理: 重提No Launcher activity found!

本文介绍了在Android应用开发中遇到NoLauncherActivityFound错误的原因及其解决办法。通过调整AndroidManifest.xml文件中的intent-filter配置,成功解决了该问题。

Error处理: 重提No Launcher activity found!


重提No Launcher activity found!错误提示,及解决办法


Android应用开发中No Launcher activity found! 是常见的错误,而且解决办法也很简单。

做Android开发已经很久了,相信自己不会轻易犯这个错误,但是今天却又遇到;在AndroidManifest.xml文件中也很确定的已经添加了

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

问题在那里那?


先看具体代码吧

AndroidManifest.xml文件内容如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.app.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.NFC" />

    <uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:debuggable="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.app.test.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

                <action android:name="android.nfc.action.TAG_DISCOVERED" />
            </intent-filter>
        </activity>
    </application>

</manifest>

运行时console中信息如下:


运行了多次均如此,也没发现什么情况造成的。

在实验多次之后,发现将AndroidManifest.xml做如下调整即可。

调整后的AndroidManifest.xml文件内容如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mexxen.app.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.NFC" />

    <uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:debuggable="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="mexxen.app.test.MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <category android:name="android.intent.category.TAG_DISCOVERED" />
            </intent-filter>
        </activity>
    </application>

</manifest>


运行效果如下:



结论:


在指定启动主界面的Activity时,尽量不要把不相干的action以及category与LAUNCHER放在一个 <intent-filter>中。



----------------------------------

欢迎浏览、技术交流
请尊重劳动成果
转载请注明出处,谢谢!
http://blog.youkuaiyun.com/netwalk/article/details/35289751






在 Windows 系统中,Py Launcher(`py` 命令)通常用于管理多个 Python 版本的执行环境。然而,有时用户会遇到 Py Launcher 无法检测到已安装的 Python 版本的问题。该问题可能由注册表配置错误、Python 安装不完整、环境变量未正确设置等原因引起。 ### 常见原因及解决方案 #### 1. 检查 Python 安装时是否勾选了“Add to PATH”选项 如果在安装 Python 时未勾选将 Python 添加到系统环境变量 PATH 的选项,则 Py Launcher 可能无法识别该版本。可以在安装过程中重新安装并勾选此选项,或者手动将 Python 安装路径添加到系统 PATH 中。 #### 2. 检查注册表中 Python 版本信息 Py Launcher 依赖 Windows 注册表中的 Python 版本信息来识别已安装的解释器。如果注册表项缺失或损坏,将导致无法检测到 Python。注册表路径如下: ``` HKEY_CURRENT_USER\Software\Python ``` 确保该路径下包含对应版本的键值(如 `PythonCore\3.11`)。如果缺失,可以尝试修复 Python 安装或重新安装 Python。 #### 3. 使用 `py -0` 查看当前检测到的 Python 版本 运行以下命令可以列出 Py Launcher 当前识别到的所有 Python 安装: ``` py -0 ``` 如果未列出预期版本,可以尝试使用 `py --list-paths` 查看是否已注册对应的可执行路径。 #### 4. 手动注册 Python 版本 若已安装的 Python 未被自动注册,可通过手动方式添加版本信息。例如,使用以下命令为特定版本创建注册表项: ``` py -3.11 -m winreg ``` 或者使用注册表编辑器(`regedit`)手动添加 Python 版本路径。 #### 5. 使用 `where python` 检查系统路径中的 Python 可执行文件 运行以下命令查看系统 PATH 中是否包含 Python 的可执行文件路径: ``` where python ``` 如果未显示预期的 `python.exe` 路径,需将 Python 安装目录(如 `C:\Python311\`)及其 `Scripts` 子目录添加到系统 PATH 环境变量中。 #### 6. 使用 `py.ini` 配置文件指定 Python 版本 在用户目录或系统目录下创建或编辑 `py.ini` 文件,可以显式指定默认使用的 Python 版本。例如: ``` [defaults] python=3.11 ``` 此配置可帮助 Py Launcher 明确调用的解释器版本。 #### 7. 修复或重新安装 Python 如果上述方法无效,建议使用 Python 官方安装程序进行修复安装或重新安装,并确保在安装过程中选择“Add to PATH”和“Install for all users”等选项。 --- ### 示例:配置 Py Launcher 使用 Python 3.11 若已正确安装 Python 3.11 并希望使用 Py Launcher 调用该版本,可执行如下命令: ```bash py -3.11 script.py ``` 该命令将显式调用 Python 3.11 解释器运行指定脚本。 --- ### 示例:查看当前系统中所有已注册的 Python 版本 ```bash py -0 ``` 输出示例如下: ``` Installed Pythons found by py Launcher for Windows: -3.11-64 * -3.10-64 ``` 星号(*)表示当前默认版本。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryHe

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值