Android Studio:应用程序图标未出现在主屏幕或应用程序列表中

Posted

技术标签:

【中文标题】Android Studio:应用程序图标未出现在主屏幕或应用程序列表中【英文标题】:Android Studio: App icon doesn't appear in the home screen or app list 【发布时间】:2016-01-10 21:54:57 【问题描述】:

我自己开发的应用程序存在严重问题。

长篇大论:

我创建了一个应用程序并在我的台式电脑上进行了开发。因为我需要向我的客户展示它,所以我决定在我的笔记本电脑上安装 android studio 并在那里试用该应用程序。我在我的笔记本上导入了项目并启动了 Android Studio,我运行了该项目,该应用程序启动并像往常一样在我的智能手机上运行,​​但是......当我回到主屏幕时,图标不见了(在我的桌面上pc版本显示),它甚至不在应用程序列表中,但是如果我继续“设置”->“管理应用程序”,它会显示在那里,我可以卸载或停止它,但因为我没有如果我不使用 Android Studio 重新运行应用程序,我将无法重新启动它。我回到我的台式电脑并尝试从那里重新运行应用程序,但没有任何改变,图标仍然丢失。

短故事:在我的笔记本电脑上使用 android studio 在手机上重新安装我的应用程序后,主屏幕和应用程序列表中缺少应用程序图标,但我可以在“设置”->“管理应用程序”中看到它。如果我回到我开发应用程序的原始电脑并尝试重新运行它,结果是一样的...图标丢失。

我在 *** 上阅读了所有与我的问题类似的帖子,但没有任何帮助我解决它。我希望有人可以帮助我。

如果需要,我发布了 AndroidManifest.xml,但由于隐私/版权问题,我无法发布所有代码,抱歉。我尽量用最正确的英文写作,如果我的写作很糟糕,我提前道歉。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.steel.bluetoothdatatransfer" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="22" />

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SMS_DELIVER_ACTION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<!-- <uses-permission android:name="android.permission.BROADCAST_SMS" /> -->
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_bt"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SENDTO" />

            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>
    </activity>

    <receiver
        android:name=".RecMex"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

    <!-- BroadcastReceiver that listens for incoming MMS messages -->

    <receiver
        android:name=".MmsReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BROADCAST_WAP_PUSH" >
        <intent-filter>
            <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />

            <data android:mimeType="application/vnd.wap.mms-message" />
        </intent-filter>
    </receiver>

    <!-- Activity that allows the user to send new SMS/MMS messages -->

    <activity
        android:name=".ComposeSmsActivity"
        android:label="@string/title_activity_compose_sms" >
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SENDTO" />

            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>
    </activity>

    <!-- Service that delivers messages from the phone "quick response" -->

    <service
        android:name=".HeadlessSmsSendService"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE" >
        <intent-filter>
            <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />

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

            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>
    </service>

    <!-- BroadcastReceiver that listens for incoming SMS messages -->
    <receiver
        android:name=".SmsReceiver"
        android:permission="android.permission.BROADCAST_SMS" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_DELIVER" />
        </intent-filter>
    </receiver>

    <activity
        android:name=".DeviceListActivity"
        android:label="@string/intestazione"
        android:theme="@android:style/Theme.Holo.Dialog"
        >
    </activity>


</application>

【问题讨论】:

救生问题。 【参考方案1】:

我遇到了同样的问题,但上面的解决方案对我不起作用。我必须删除label 属性才能让它再次出现在屏幕上。

在 MainActivity 之前是这样的:

<activity
        android:name=".HomeTabs.NavigationHome"
        android:label="@string/title_activity_navigation_home">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

然后像这样:

<activity
        android:name=".HomeTabs.NavigationHome"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

【讨论】:

【参考方案2】:

添加不同的意图过滤器可以解决您的问题

<activity
            android:name=".activities.SplashActivity"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <category android:name="android.intent.category.BROWSABLE"></category>
                <data android:host="example.com"></data>
                <data android:scheme="http"></data>
                <data android:pathPattern="/.*"></data>

            </intent-filter>

        </activity>

【讨论】:

我忘了添加动作视图。非常感谢您节省了我的时间。【参考方案3】:

如果您已经确定自己已正确定义了应用徽标, 问题将是在启动器活动中使用 android:scheme。请看下面的帖子:

https://***.com/a/8134686/2231702

【讨论】:

我不认为是问题所在,因为它在我的台式电脑上运行良好,而且笔记本上的代码与我的台式电脑上的代码相同(复制粘贴):/【参考方案4】:

这是因为您将所有内容都传递给了一个意图过滤器。尝试根据用例将它们分开,或者至少分开启动器和主过滤器。

像这样:

<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.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <action android:name="android.intent.action.SEND" />
        <action android:name="android.intent.action.SENDTO" />

        <data android:scheme="sms" />
        <data android:scheme="smsto" />
        <data android:scheme="mms" />
        <data android:scheme="mmsto" />
</intent-filter>

【讨论】:

这解决了问题,你无法理解我多么感谢你:D 谢谢哥们,你拯救了我的一天:D 谁能解释为什么把所有东西放在同一个意图中是不好的? 谢谢,你节省了我的时间:) 救命答案..哈哈..tq 非常

以上是关于Android Studio:应用程序图标未出现在主屏幕或应用程序列表中的主要内容,如果未能解决你的问题,请参考以下文章

android studio中toolbar怎么出现自己的应用图标

自己的自定义图标未显示在底部导航栏android studio中

android studio在应用程序运行时打开调试模式

Expo Android自适应图标未出现

android-studio打包APK出现有关apk图标问题

应用程序已安装,但图标未出现在启动器屏幕或应用程序列表中