Android Studio:应用图标未显示在主屏幕或应用列表中

时间:2015-10-13 08:30:08

标签: android android-studio

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

长篇故事:

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

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

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

如果需要,我发布了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>

4 个答案:

答案 0 :(得分:74)

这种情况正在发生,因为您将所有内容都传递到一个intent过滤器中。尝试根据用例或至少单独的Launcher和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.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>

答案 1 :(得分:8)

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

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

答案 2 :(得分:0)

如果您确定已正确定义了应用徽标, 问题是在启动器活动中使用android:scheme。见下文帖子:

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

答案 3 :(得分:0)

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

在 MainActivity 之前是这样的:

label

然后像这样:

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